在使用 hexo 做博客时,我会把博客目录做一个备份,方便迁移。但是发现使用的主题目录无法备份,推送后总是下图状态:
解决方法
如果你想让他正常的话,可以在博客目录运行如下命令:
1 | $ git rm --cached themes\maupassant\ |
原因
这是因为用到了 git 的子模块(git submodule)功能(你在你的 git 项目里 clone 的别人的项目)。
在你的主项目的 git 库里,子模块只是一个 HEAD 指针,指向子模块的 commit。
这个功能的意义:
在这里,如果你需要修改 next 主题(可能需要很多文件),又想保证能够随时更新最新版本,其实用子模块功能是很方便的。
只需要 clone 下来新建一个 branch,用来自己用,每次官方更新 pull 到另一个分支,merge 一下就行。
相当于把一个大项目分成多个小项目,尽可能减少项目之间的关联,方便调试和修改。
这里我偷懒直接将子模块删除,将整个仓库进行备份了。
比较优雅的做法可以参考:https://github.com/iissnan/hexo-theme-next/issues/328