使用 Hexo 在 GitHub Pages 搭建博客时,博客作为一个单独的 GitHub 仓库存在,但是这个仓库只有生成的静态网页文件,并没有 Hexo 的源文件。这样一来换电脑或者重装系统后,再想找回源文件就比较麻烦了,这里推荐一种比较完美的方法解决备份问题。
clone
至本地,将之前的 hexo 文件夹中的 _config.yml、themes/、source/、scaffolds/、package.json 和 .gitignore 复制至 WincerChan.github.io 文件夹;.git/
删除,否则无法将主题文件夹 push(也可以将主题文件夹使用
子模块
的方式添加到该仓库);npm install
和 npm install hexo-deployer-git
(这里可以看一看分支是不是显示为 hexo);git add
、git commit -m ""
、git push origin hexo
来提交 hexo 网站源文件;hexo g -d
生成静态网页部署至 Github 上。这样一来, WincerChan.github.io 仓库就有 master 分支和 hexo 分支,分别保存静态网页和源文件。
在本地对博客修改(包括修改主题样式、发布新文章等)后:
git add
、git commit -m ""
和 git push origin hexo
来提交 hexo 网站源文件;hexo g -d
生成静态网页部署至 Github 上。即重复备份的 7-8 步骤,以上两步没有严格的顺序。
重装电脑后,或者在其它电脑上想修改博客:
git clone git#github.com:WincerChan/WincerChan.github.io.git
将仓库拷贝至本地;npm install hexo-cli -g
、npm install
、npm install hexo-deployer-git
。这里稍作说明:
ssh-keygen -t rsa -C "yourname#email.com"
,一路回车;id_rsa
、id_rsa.pub
两个文件,这就是密钥对,id_rsa 是私钥,千万不能泄漏出去;id_rsa.pub
文件的内容,注意不要粘贴成 id_rsa
,最后点击「Add SSH Key」。这里说一下步骤 4 为什么只需要拷贝 6 个,而不需要全部:
_config.yml
站点的配置文件,需要拷贝;themes/
主题文件夹,需要拷贝;source
博客文章的 .md 文件,需要拷贝;scaffolds/
文章的模板,需要拷贝;package.json
安装包的名称,需要拷贝;.gitignore
限定在 push 时哪些文件可以忽略,需要拷贝;.git/
主题和站点都有,标志这是一个 git 项目,不需要拷贝;node_modules/
是安装包的目录,在执行 npm install
的时候会重新生成,不需要拷贝;public
是 hexo g
生成的静态网页,不需要拷贝;.deploy_git
同上,hexo g
也会生成,不需要拷贝;db.json
文件,不需要拷贝。其实不需要拷贝的文件正是 .gitignore
中所忽略的。
关于如何使用 CI/CD 持续部署可以参考我 这篇文章 。