diff --git "a/source/_posts/2023-12-09-\346\233\264\346\215\242Hexo-butterfly\344\270\273\351\242\230\350\256\260\345\275\225.md" "b/source/_posts/2023-12-09-\346\233\264\346\215\242Hexo-butterfly\344\270\273\351\242\230\350\256\260\345\275\225.md" new file mode 100644 index 0000000..0f9cdff --- /dev/null +++ "b/source/_posts/2023-12-09-\346\233\264\346\215\242Hexo-butterfly\344\270\273\351\242\230\350\256\260\345\275\225.md" @@ -0,0 +1,73 @@ +--- +title: 更换Hexo_butterfly主题记录 +tags: + - Git + - Hexo +categories: + - Experience +date: 2023-12-09 08:48:02 +--- + +## 更换Hexo butterfly theme记录 +### 前言 +真正的第一篇 blog,记录更换 Hexo 主题遇到的坑 + +最近比较忙,只能抽空做一点,结果最后没做完想做的() + +### 更换主题时遇到的问题: + +上一个主题使用了 npm 直接部署,更换 butterfly 时使用 git clone ,导致目录比较混乱(告诉我们文件管理不能完全依赖git) + +发现用`git clone`是把一个独立的仓库克隆到 Hexo 根目录中,而 Hexo 根目录也是一个仓库,所以就产生了父子关系,即 butterfly 主题仓库成为了主仓库下的一个独立子仓库。父仓库不会对子仓库进行管理,这样违背了用 Git 进行版本控制的初衷 + +后来发现可以删除 butterfly 项目下的 .git 文件,把 themes/butterfly 变成一个普通的目录,这样就取消了父子仓库关系。但是如果后续主题作者有更新,就不能直接用 git pull 拉取更新,而是需要手动安装,覆盖原来的文件,重新配置主题,不易维护 + +Git 提供了子模块 submodule 功能,可以避免上面的问题。它允许将一个 Git 仓库作为另一个 Git 仓库的子目录,同时还保持提交的独立 + +这样做在本地修改和使用主题的时候是没有问题的。但是当把修改提交到 GitHub 时,会导致提交到主题原作者的仓库去 + +下载主题的正确操作流程如下: +1. 在 GitHub 上,把原作者的主题 fork 到我们自己的仓库中 +2. 运行以下命令 +```bash +git submodule add https://github.com//hexo-theme-butterfly themes/butterfly +``` + +`username`为自己的用户名 + +在 push 时子模块和主模块需要分开 push,一般先推送子模块,后推送主模块 + +如果使用的主题仍在被维护,那么我们就能从远程获取更新 + +```bash +git submodule update --remote +``` + +在其他设备工作时,与普通的 git clone 相比,只需要加上 --recursive 参数 + +```bash +git clone --recursive +``` + +也等价于 +```bash +git clone +git submodule update --init +``` +删除 submodule +```bash +git submodule deinit +``` +### 暂时搁置功能 + +本来还想加一个 aplayer 的,认为个人网页有音乐非常重要:) + +不过一直没法正常部署,只能暂时搁置到以后再做了(悲) + +评论功能以后或许会做,目前有需要的话,可以通过[关于](https://thely314.github.io/about/ "页面上方'关于'分页")页面的邮箱联系我 +### 参考文献 +> 星空下的YZY - [更换Butterfly主题及其美化记录](https://226yzy.com/2022/010948485.html "'星空下的YZY'的个人网页文章") +> +> Mr.J - [使用Git Submodule管理Hexo主题](https://dnocm.com/articles/beechnut/hexo-git-submodule/ "'Mr.J'的个人网页文章") +> +> 某中二的黑科技研究中心 - [在 hexo 中使用 git submodules 管理主题](https://darkreunion.tech/article/manage-hexo-theme-with-git-submodules "'某中二的黑科技研究中心'的个人网页文章") \ No newline at end of file diff --git a/source/_posts/hello-world.md b/source/_posts/hello-world.md index 71148fc..0ce3ae8 100644 --- a/source/_posts/hello-world.md +++ b/source/_posts/hello-world.md @@ -1,5 +1,9 @@ --- title: Hello World +tags: + - Hexo +categories: + - start date: 2023-12-05 22:00:00 --- Welcome to [Hexo](https://hexo.io/)! This is your very first post. Check [documentation](https://hexo.io/docs/) for more info. If you get any problems when using Hexo, you can find the answer in [troubleshooting](https://hexo.io/docs/troubleshooting.html) or you can ask me on [GitHub](https://github.com/hexojs/hexo/issues).