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!