【Hexo博客】解决push博客源码时themes下的主题文件夹无法备份更新到GitHub分支
发现问题
我平时在GitHub的hexo分支中备份博客源码,但某一天突然发现,主题文件夹只有第一次使用时备份成功了。也就是说,之后我改动过多次主题配置文件_config.yml
并 push 到GitHub,全没有push更新成功过…
啊这…那我万一哪一天本地文件因不可抗力损毁且无法恢复,那我备份了那么多次备份个寂寞啊。
并且我发现GitHub上我备份的博客源码中,主题文件夹并不能点开,而是以图中这样的形式备份的:
分析问题
经过查找其他博文与询问主题作者寻找帮助,我才了解到,无法点击GitHub的主题文件夹并且后续无法push备份修改过的文件夹的原因是:
本地 Butterfly 主题文件夹中含有 .git
隐藏文件。
其实如果细心,你会注意到博客根目录下其实也有一个名为.git
的灰色隐藏文件。(没看见的请将你电脑的隐藏文件设为显示)
那么
.git
文件是什么呢?
简单地说,这个目录文件包含了几乎所有 Git 存储和操作的对象,是版本控制工具 Git 在你第一次初始化一个本地仓库时,在当前文件夹生成的一个隐藏文件,我们以后每个版本的作品都是放在了.git
这个文件夹里。所以说,这个问题其实是一个正常现象吗?
是的,当我第一次克隆过来 butterfly 作者的主题文件并应用到自己的 Hexo 博客时,应该已经是这样了,只不过当时没注意这个细节而已。
Butterfly 的作者 Jerry 回答我道:
“这不是很正常么,git 不允许 git 里面包含 git ”
我问道:能否将主题文件夹下的.git
文件删除?
“你想上传就删了,但是后续不能通过 git pull
更新”
于是我决定暂时不删除该文件,并参照网上教程成功push了主题文件。
解决问题
1.剪切
themes/主题名/.git
文件夹到其它处,如桌面。2.从暂存区删除该文件夹
git rm --cache themes/你的主题文件夹名
操作后github上的主题文件夹应该会被移除。3.使用git status查看状态
4.三步走:
->
git add .
->
git commit -m "你的自定义信息"
->
git push
之前往GitHub上经常push过东西的话应该知道最后一步git push过程中的报错可尝试通过科学上网解决,国内网速太慢可能导致网络链接超时而报错
然后就会发现你的主题文件夹在GitHub上更新成功了
- 5.再移回themes/next/.git文件夹
便于以后对主题的更新
复盘该问题
我提出该问题的原因是我对 Git 的了解不足,今后一定要抽时间好好学一下 Git 了,感谢 Butterfly 的作者的答复以及帮助到我的所有博客博主,包括但不限于:
CSDN-rm, git rm, git rm –cached 区别与关系
博客园-Hexo + Github page博客 themes/next 文件夹因存在.git而无法提交到git的解决办法
另外附上
Git官方文档:
https://git-scm.com/book/zh/v2