如何使用Git进行版本控制管理hexo博客

  使用hexo或其它静态博客都会有这样的问题:博客的配置文件_config.yml、主题配置等如何保存?我们常用的电脑会存一份,但是把鸡蛋都放在一个篮子里是绝对不妥的,保不准电脑出故障或者其它问题。最稳妥的方式还是使用版本控制,由于个人的配置还是有一些私密性,所以要选择能建私有仓的。2018年1月9号github的私有仓免费了,是个不错的选择,另外gitee也能使用免费私有仓,速度较github要快一些。我之前是放在gitee上的,但github能用私有仓了,我还是选择切换到github上。

  hexo静态博客的主题多数会用别人开发的,克隆开发者的仓库,修改配置然后使用。也就是说我们的hexo/文件夹下还有一个版本控制的仓库?如何用版本控制管理呢?

问题

  首先,hexo的配置我们肯定是要进行版本控制的,但主题有两个问题:

  1. 自己没能力修改主题,解决问题,需要开发者修复问题,或者希望开发者提供新功能。
  2. 自己能解决问题,能在开发者的基础上进行二次开发。

  主要针对这两种情况进行说明如何进行版本控制。

解决方案

第一种:不需要对主题进行版本管理,只管理配置文件即可

  这种情况主题的开发交给开发者来做,自己只需定时pull一下代码即可,但推荐将配置文件保存一份,重命名放在hexo/下,与hexo的配置一同进行版本控制。步骤:

  1. 在github或gitee上创建一个私有仓
  2. 在hexo文件夹下执行git init
  3. 添加远程仓库地址,git remote add github repository_path(github是远程仓库别名,可以另取,repository_path是远程仓库地址)
  4. 先拉一下远程仓库的代码,git fetch github
  5. 将自己主题的配置复制一份,重命名放到hexo/
  6. 填写.gitignore忽略一些不需要进行管理的文件或文件夹,下面是我的配置
  7. 将自己的代码提交并push到github上即可
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
第二种:会对主题进行二次开发,要对主题进行版本控制

  因为主题仓库有自己的版本控制,不过我们也不需要,之前查了下,好像submodule也不满足需求。反正我们也不需要使用原来的版本控制,那我们直接删掉.git在本地看看,git有没有对主题文件夹进行管理,通常第一次对hexo文件夹下的内容进行版本控制,删掉.git就能使git对其进行版本控制,如果已经进行过版本控制或添加过submoudle,即使删掉.git也不会生效,原因是git在本地会有缓存,需要删除本地缓存才能使git重新对其进行版本控制。步骤:

1.2.3.4同上

  1. 先删掉主题目录下的.git.gitignore,本地使用git status看git有没有对主题进行版本控制,如果没有,可能是我上诉的两种情况。git rm -r --cached themes/theme_nametheme_name替换为自己的主题名,再用git status查看一下,正常情况git就会管理主题文件夹了。
  2. 7.同上

其他

  当初从wordpress切换到hexo还是挺值的,速度大大提升了,也不用操心服务器、数据库什么的,而且还可以结合自己的能力进行二次开发。当初git用的不熟,还是存在很多问题,折腾了很久。写这篇博客才了解了git本地缓存的问题。