把安知鱼主题作为hexo的子模块
把安知鱼主题作为hexo的子模块
nodaoli前言
先致谢🙏安知鱼,好好看的主题
之所以要把安知鱼主题作为子模块,是因为推送到github上面时发现不会推送安知鱼主题上去,不方便换环境,除非把主题配置文件(_config.anzhiyu.yml)放到根目录, 并且不魔改主题的情况下,就可用管
把主题当做子模块可以方便更新主题
有关父子模块介绍请看:父子模块
密码样式的文本:
在安装主题时创建子模块
在hexo根目录下执行
1 | git submodule add https://github.com/anzhiyu-c/hexo-theme-anzhiyu.git themes/anzhiyu |
魔改主题、commit、push
如果主题里的文件发生变化,这是子模块的区域,所有的git操作应在子模块中运行
删除主题子模块
如果不再需要子模块,您可以:
- 删除子模块目录:
1
2git rm --cached themes/anzhiyu
rm -rf themes/anzhiyu - 编辑
.gitmodules
文件,删除与子模块相关的条目。 - 编辑
.git/config
文件,删除与子模块相关的部分。 - 提交更改:
1
2git commit -m "删除子模块"
git push
常见错误
错误信息 “fatal: ‘themes/anzhiyu’ already exists in the index” 表示您尝试添加子模块的路径 themes/anzhiyu
已经在 Git 的索引中存在。这通常发生在您已经创建了这个目录但没有将其添加到 Git 版本控制中,或者您之前尝试添加子模块但失败了。
要解决这个问题,请按照以下步骤操作:
- 检查
themes/anzhiyu
目录的状态:如果1
git status
themes/anzhiyu
目录被列为 “Untracked files”,那么您需要将其从 Git 索引中移除。 - 移除
themes/anzhiyu
目录:
如果目录是未跟踪的,您可以直接删除它:1
rm -rf themes/anzhiyu
- 如果目录已跟踪,请将其从 Git 索引中删除:
如果目录已经被 Git 跟踪,您需要使用git rm
命令来删除它:这个命令会从索引中删除目录,但不会删除目录中的文件。1
git rm -r --cached themes/anzhiyu
- 提交更改:
1
git commit -m "Remove themes/anzhiyu directory"
- 重新添加子模块:
现在您可以重新尝试添加子模块:1
git submodule add https://github.com/anzhiyu-c/hexo-theme-anzhiyu.git themes/anzhiyu
- 提交子模块更改:
1
git commit -m "Add anzhiyu theme as a submodule"
- 推送更改到远程仓库:确保在执行这些步骤之前,您已经备份了
1
git push origin master # 或者是 main,取决于您的默认分支名称
themes/anzhiyu
目录中的任何重要文件,以防不小心删除了未提交的更改。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果