原理
我们的博客是托管到 GitHub 上的. 而我们每次上传(hexo d)的是网页文件, 不是我们
的文章, 所以我们如果想上传文章, 但同时不会干扰到网页部署, 就在 GitHub 的博客仓
库上建立一个分支 hexo, 这个 hexo 分支的作用就是用来保存我的 MarkDown 文章, 站点
配置和一些其他文件.
这样hexo d
推送的是 master 分支, 而git push
推送的是 hexo 分支, 互不干扰.
建立一个中转站
建立一个文件夹, 名字随便, 我这里叫 hexo
git clone https://github.com/Witman1999/Witman1999
其实这里仅仅只是为了获得版本管理的.git
隐藏文件夹.
建立分支
建立一个分支, 我这里分支名为 hexo
git checkout -b hexo
清空 hexo 分支
克隆下来的都是一些编译后的静态网页, 我们不需要. 删除除了.git
文件夹的所有文件.
git add --all
git commit -m "清空hexo分支仓库"
git push --set-upstream origin hexo
这里同时设置了以后默认为hexo分支, 回到博客的根目录下就能看到.
我们的博客的站点配置文件_config.yml
的默认提交分支为 master.
deploy:
type: git
repo: https://github.com/Witman1999/Witman1999.github.io.git
branch: master #提交的默认分支
移动文件
把.git
文件夹移动到博客的根目录下.
提交源文件
到了这一步有个注意点, 如果你的主题文件是克隆 Github 下来的, 那么会带有该主题的
版本管理文件, 也就是.git
文件夹. 所以主题下面的要删除.git
文件夹和.gitignore
文件, 否则会忽略这个 next 主题的上传.
.deploy_git
是部署静态文章用的, 需要保留.
之后每次更新博客之后, push 源文件到hexo
分支即可备份.
迁移后可能遇到的问题
node版本过高
重新安装低版本 node
.deploy_git异常
rm -rf .deploy_git
hexo g
hexo d
参考: