hexo博客同步管理及迁移
转自:使用hexo,如果换了电脑怎么更新博客? - 容与的回答 - 知乎
其他hexo自定义教程: 打造个性超赞博客 Hexo + NexT + GitHub Pages 的超深度优化
背景:一台电脑上已有一个在用的博客,又新用了一台电脑,实现原电脑和新电脑都可以提交更新博客,实现同步或者说博客的版本管理。
原电脑操作
- 在原电脑上操作,给 username.github.io 博客仓库创建 hexo 分支,并设为默认分支。
在Github的username.github.io仓库上新建一个hexo分支,并切换到该分支;
并在该仓库->Settings->Branches->Default branch中将默认分支设为hexo,update更新保存;
- 如果未给你的 github 账号添加过当前电脑生成的 ssh key,需要创建 ssh key 并添加到 github 账号上。
(如何创建和添加参考 github help )
- 随便一个目录下,命令行执行 git clone git@github.com:username/username.github.io.git 把仓库 clone 到本地。
在username.github.io目录使用Git Bash执行git branch
命令查看当前所在分支,应为新建的分支hexo
显示所有隐藏文件和文件夹,进入刚才 clone 到本地的仓库,删掉除了 .git 文件夹以外的所有内容。
命令行 cd 到 clone 的仓库(username.github.io)执行下列命令
1 | git add -A |
把刚才删除操作引起的本地仓库变化更新到远程,此时刷新下 github 端博客hexo分支,应该已经被清空了。
将上述 .git 文件夹复制到本机本地博客根目录下(即含有 themes、source 等文件夹的那个目录),现在可以把上述 clone 的本地username.github.io目录删掉了,本机博客目录已经变成可以和 hexo 分支相连的仓库了。
将博客目录下 themes 文件夹下每个主题文件夹里面的 .git目录和 .gitignore文件删掉。
命令行 cd 到博客目录,执行下列命令
1 | git add -A |
将博客目录下所有文件更新到 hexo 分支。如果上一步没有删掉 .git目录和 .gitignore文件,主题文件夹下内容将传不上去。
- 至此原电脑上的操作结束。
新电脑操作
- 先把环境安装好
创建添加ssh
- 命令行进入用户主目录,比如在我的电脑下:c:\users\administrator。
- 命令行运行
ssh-keygen -t rsa -C "username@example.com"
。它会提示你输入邮箱,输入完成以后一路回车就行。完成这一步,找到该目录下的.ssh文件夹,里面多了两个文件:id_rsa和id_rsa.pub分别是你这台电脑的ssh key的私钥和公钥。用文本打开公钥文件,复制里面的所有内容备用。 - 登录github后,进入 settings -> SSH and GPG keys。点击 New SSH key ,然后title随便填,比如可以是你的电脑名称,把刚才复制的公钥内容黏贴到key中,最后点击 Add SHH key 就完成了
选好博客安装的目录,clone仓库。
1 | git clone git@github.com:username/username.github.io.git |
- cd 到博客目录,执行下列命令
1 | npm install |
安装依赖,生成和启动博客服务。
- 正常的话,浏览器打开 localhost:4000 可以看到博客了。
- 至此新电脑操作完毕。
更新源文件、部署静态文件
以后无论在哪台电脑上,更新以及提交博客,依次执行。
1 | git add -A |
即可备份源文件到hexo分支,部署静态文件到master分支。