Hexo博客与主题配置文件备份与恢复
前言
hexo d上传部署到github的其实是hexo编译后的文件,是用来生成网页的,不包含源文件,也不包含主题配置文件。
也就是上传的是在本地目录里自动生成的.deploy_git里面。
其他文件 ,包括我们写在source 里面的文章,和配置文件,主题文件,都没有上传到github。
本篇文章就是为解决hexo备份无法包含主题配置文件的问题
备份博客
创建新的仓库
重新创建一个仓库来专门存放所有的配置文件
创建一个仓库,勾选README
获取.git文件夹
原始的博客文件夹只有.deploy_git,是没有.git文件夹的,于是我们先去桌面或者哪里随便一个地方,把刚刚的hexo分支给clone下来。然后剪切出里面的.git文件夹,复制到现在的博客文件夹中。
| 1 | git clone https://github.com/dida303/hexo-backup.git | 

需要把主题文件中的.git文件删掉,因为git不能嵌套上传。
备份到远程仓库
通过如下命令将本地文件备份到远程仓库
| 1 | git add . | 

经常备份
| 1 | git add . | 
恢复
克隆到本地
| 1 | git clone https://github.com/dida303/hexo-backup.git(换成自己的) | 
在clone下来的那个文件夹里面执行
| 1 | npm install hexo-cli | 
后言
heme主题上传到GitHub时,只有主题名,主题文件夹下并没有主题对应文件(主题文件备份失败),打不开文件,表明主题中的.git文件忘了删除。
原因
这是因为用到了 git 的子模块(git submodule)功能(你在你的 git 项目里 clone 的别人的项目)。
在你的主项目的 git 库里,子模块只是一个 HEAD 指针,指向子模块的 commit。
这个功能的意义:
- 在这里,如果你需要修改 next 主题(可能需要很多文档),又想保证能够随时更新最新版本,其实用子模块功能是很方便的 
- 只需要 clone 下来新建一个 branch,用来自己用,每次官方更新 pull 到另一个分支,merge 一下就行。 
- 相当于把一个大项目分成多个小项目,尽可能减少项目之间的关联,方便调试和修改。 
如何解决
- 先把.git文件删除
- 移除没有上传的butterfly主题1 git rm --cached themes/butterfly 
- git status—查看移除主题后的状态
- git add themes/butterfly/(重新提交主题文件夹butterfl)
- git status—查看提交主题后的状态
- git commit -m "backup"
- git push origin hexo 
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Gehina's Blog!





