如何备份hexo源文件到github上
本地文件备份过程
在写文章的过程中,当然希望把源文件也保存下来,于是就着手研究了一下
有直接的备份插件,但是不好用。建议还是使用这个方法。
首先.gitignore这个文件,直接通过新建txt更改名字是不被git识别的,说多了都是泪。应该在git下输入命令
1 | touch .gitignore |
hexo本地文件的根目录下也有一个.gitignore文件,是hexo d部署到github时hexo需要忽略掉不需要的文件。
为了我的.gitignore不被hexo本身的.gitignore影响,我在hexo根目录的上一级文件夹git init。
接下来就是写.gitignore文件了,我们把hexo本地博客的文件上传到github的时候不需要上传一些文件,比如public文件夹和node_modules内的一大堆npm模块。node_modules文件夹内太多模块,git add .会很久。我选择只add文件夹node_modules下的.package-lock.json文件,根据这个json文件,npm就可以把全部模组再次下载下来。
于是在.gitignore内添加两行
1 | myblog/node_modules/* |
第一行的含义是忽略 myblog/node_modules/
目录下的所有内容,第二行的意思是但不忽略 myblog/node_modules/.package-lock.json
文件,这样我就可以只保留住.package-lcok.json文件了。
git add .的时候遇到了问题,git提示我主题next下有.git,无法提交。
实际上这个.git是主题开发者开发主题时留下来的,直接删除这个文件夹就行,不影响正常使用
.deploy_git文件夹hexo g时可以重新生成。
对于我们来说不需要备份。于是再在.gitignore添加一行
1 | .deploy*/ |
博客根目录下的public文件夹是hexo生成的静态网站文件
hexo cl可以删除掉public文件夹,hexo g又可以重新再次生成,不需要备份。
.gitignore内再加一行:
1 | myblog/public/ |
这时候就可以正常的用git add,commit,push把本地的hexo博客文件备份到GitHub上了,可是上传上去发现少了一些文件?
这是因为hexo根目录下的.gitignore在作怪,两个.gitignore一起生效,把一些提交文件给忽略了。
hexo根目录下的.gitignore是一定要在的,否则hexo d推送文件时会出现问题,因此肯定不能删除。
除非你打算备份一次文件就删除一次hexo根目录下的.gitignore,等推送完后再把文件恢复回来。(但这样太麻烦了)
但是我想起来之前折腾很久的.gitignore不生效问题,也许我把hexo根目录下的.gitignore加个后缀txt
git就不识别了,但是hexo能够识别呢?
测试了一下真的可行,hexo d的时候hexo还是识别到了自己根目录下的.gitignore,部署时还是忽略掉了不需要的文件,没有问题。
更换设备后的操作
另一设备上部署网站到github
先git clone 把远程仓库文件下载下来,然后在里面输入命令npm install
理论上来说hexo也会被下载,如果不能使用,那再手动安装hexo
1 | npm install -g hexo-cli |
.deploy_git文件夹会在hexo d时生成
然后执行命令获取SSH秘钥
1 | git config --global user.name "" |
用不同于以前的设备hexo d,部署网站时,可能会发现commit次数怎么变成一次了?
这是因为设备不同,commit时的设备ID不一样。用一台设备hexo d文件到GitHub上后,只能看到该设备的commit次数。
github pages只会挑最后一次commit来形成,无论你是哪个commit id,因此不会有影响。
另一设备上备份hexo源文件到另一个github仓库
还是来到hexo根目录下的上一级,直接还是git add commit push走一套流程就行
因为.git文件夹内的文件没有被修改,那么设置依旧是有效的。