上次重装系统后重新部署的Hexo,好麻烦。痛定思痛,决定以后要养成备份的好习惯。去网上找了找备份 Hexo 源文件的方法,备份到 Github 这个还是比较方便靠谱的,所以记录一下。
采用分支的思路,一个分支用来存放 Hexo 生成的网站原始的文件,另一个分支用来存放生成的静态网页。
如图:
.git
文件夹(默认隐藏),复制它,粘贴到其他文件夹。一会还要粘回来。npm install hexo
、hexo init
、npm install
和 npm install hexo-deployer-git
(此时当前分支应显示为 hexo);.git
文件夹黏贴回来覆盖本地文件夹中的.git
文件夹;_config.yml
中的 deploy
参数,branch: master
;前四步的目的是,在 github 上建立一个新的仓库,并且把目录同步到本地(这时同步到本地的文件夹可能只有一个 readme.md
,或者是个空文件夹,但是有一个隐藏的. git
文件夹。clone 一个空仓库的目的是要通过 git 建立存放本地环境的文件夹)。
执行第6步的时候,Hexo 会生成一个新的.git
文件夹,并且覆盖了上文提到的.git
文件夹。这会导致没法 push 到 hexo 分支(第七步没法执行)。所以要在 hexo init
前复制.git
文件夹 。在完成 hexo init
后再黏贴回来覆盖新生成的.git
文件夹。
问: 在完成第一次 push 到远程 hexo 分支后需要切换到本地的 master 分支,然后 hexo g -d 吗?然后以后需要修改的话再切换到本地 hexo 分支?
答: 不需要。所有操作只需要在 hexo 分支下进行就可以了,hexo g -d 会将编译生成的静态网页提交到_config.yml
文件里面指定的分支。我们已经提前设置_config.yml
文件为branch: master
,所以会默认推送静态文件到master
分支。
问: 当我 push 本地文件夹到远程 hexo 分支的时候,推送的是网站原始文件,push 的记录中会不会包含博客编译后的静态网页?
答: 不会。hexo 分支是用来对必须的网站原始文件进行版本控制,而 master 是用来放置编译后部署的静态网页。所以,在默认分支为 hexo 下,你每次 push 所记录的是网站所必须的原始文件,不会包含编译之后的网页文件。
你可以看下用 hexo 搭建博客的原始文件,生成的.gitignore
文件已经把 public/
和.deploy*/
这两个文件夹都忽略了(这两个文件就是用来放置编译后的静态网页的)。
本文作者:青波
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!