记录如何把博客从离线存储配置成可通过 git 维护
背景
本博客之前一直处于离线保存方式,因为 hexo 最终发布后的目录结构和源文件目录结构并不相同,发布后的博客的确是发布到 git 远程仓库,并通过 pages 服务提供网页端展示的,但是源博客结构要如何通过 git 进行维护呢?试想,如果源博客文件夹如果不慎丢失,且没有备份,那么即使下载发布后的博客,也无法使用该目录进行新的博客发布和维护,或者即使有备份,也是过时的备份(总不能每次发布新的博客都手动进行新的备份),那么同样会丢失备份时间之后的博客源文件,所以使用 git 进行版本管理当务之急。
方案
另起一个远程 git 仓库,用于存储博客源文件夹(首先将其初始化一个 git 仓库)
问题
第一次初始化博客文件夹并将其添加进暂存区提交时会提示 theme 文件夹中存在 git 子项目,需要对其进行子项目处理,其实只是 theme 中的项目原本也是 git 项目,然而此处不需要对其单独维护,而将其作为博客主目录的一个子目录进行维护便可,所以将主题中的.git 目录删除,将其脱离子项目的 git 管理,而作为博客主目录的一个子文件夹存在即可。
优化
尽管现在博客目录在 git 管理之下,但是仍需每次对博客进行变动后手动提交对其进行维护,由于每次发布博客或修改博客内容后都需要编译发布将其更新到远端,所以这里可以写一个脚本,将 git 提交与博客发布进行联动处理即可,脚本如下:
hexo g -d
git add .
git commit -m 'another commit'
git push origin master
结语
这样便达到既可以每次更新博客,又可以将其纳入 git 维护,而不用担心博客文件丢失,因为每次对博客的更新都会存储在远端仓库,当想要恢复博客的时候从远端仓库拉下最新的内容即可继续使用