Hexo多终端同步
Hexo 多终端同步问题
我有两台电脑,一台 windows, 一台 Ubuntu 。之前在 Windows 机器下部署了 hexo 博客,现在想在另一台机子的 Ubuntu 系统下同步之前的博客,折腾了一晚上终于搞定。
一、将网站文件上传到 github
hexo部署完毕之后,在 yourname.github.io 上面默认 master 分支是 hexo 编译生成的静态网站,而我们需要将原始网站文件同步到一个新分支上。
1. 新建一个 stat 分支并切换到这个分支
git checkout -b stat
2. 将本地文件上传到 stat 分支
git add .
git commit -m "upload static file"
git push origin stat:stat
现在,你的 github 仓库 yourname.github.io 下就有两个分支了,一个是 master,存放 hexo编译生成的静态网站,一个是 stat,也就是原始文件。
二、 在新电脑下同步你的原始文件
1. 首先安装 nodejs
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
2. 安装 git
sudo apt-get install git
3. 安装 hexo
sudo npm install hexo -g
4. 配置 git SSH key
如果是第一次在这台电脑用git,需要先添加 user.name 和 user.email
可参考我之前写的 git 备忘
然后再配置SSH key
5. 在合适的位置新建一个目录,并在这个目录下打开终端
5. 打开一个合适的目录位置
6. 克隆原始文件(stat)分支到本地
git clone git@github.com:JerrySheh/JerrySheh.github.io.git -b stat blog
这里的 stat 是远程分支名字, blog是新建名为blog的文件夹并把这个分支clone到这个文件夹里
7. 切换到克隆生成的目录
cd blog
8. 依次执行
npm install hexo
npm install
npm install hexo-deployer-git
注意:不需要 hexo init !
- 这里有一个坑
由于Ubuntu下已经有一个名叫node的库,因此Node.js在ubuntu下默认叫nodejs,需要额外处理一下
sudo ln -s /usr/bin/nodejs /usr/bin/node
9. 尝试修改些什么,然后执行
hexo clean
hexo g
hexo s --debug
如果出现Error: Cannot find module 'hexo-util'错误,尝试重装util
npm install -- save-dev hexo-util
没问题了,开始部署
hexo d
10. 将静态文件上传到 github stat分支
git add .
git commit -m "somethings update"
git push origin stat
三、 回到旧电脑,拉取新电脑的更新
1. 同步
git pull origin stat:stat
如果遇到以下报错
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch>
将本地 static 和 远程 origin/static 链接即可
git branch --set-upstream-to=origin/stat stat
2. 开始写文章
3. 重新部署
hexo clean
hexo g
hexo d
部署前最好先在本地测试一下 , 使用 hexo s --debug
,然后在 127.0.0.1:4000 查看
4. 提交静态文件并推送到远程
git add .
git commit -m "somethings update"
git push origin stat