使用hexo-deployer-git同步部署Hexo

嗯,好了我知道这玩意儿几乎是个玩Hexo的都会用。

但就让我水个经验呗。

屁话你自己的博客水啥经验?

咳,好吧我得承认我一开始并不知道这个东西,甚至还打算自己造轮子搞个脚本来做。直到发现solution远在天边近在眼前——某喵的头篇文章就有。

惭愧,之前还发issue给他想用aria主题来着。后来换来换去最后定下了Inside。我不要再换了啊hueman你走开别诱惑我了!

给我说重点!

咳,这个东西并不复杂,npm安装好添加一下配置就行了。唯一需要注意的也就一个小地方。另外某喵的aria确实不错啊强烈推荐!

第一步自然老规矩进入hexo目录,执行命令:

npm install hexo-deployer-git --save

小窍门(root用户无视): Linux下通常需要sudo才能正常执行npm,但会导致node_modules下出现只有root才能操作的文件让你不能愉快的git checkout,这时候只需要sudo chmod 777 -R node_modules就好。当然你也可以先push然后霸气rm -rf再clone下来。

站点_config.yml的结尾deploy处添加如下内容:

deploy:
type: git
repo: <repo url>
branch: [branch]
name: [git user]
email: [git email]

上面四行足够满足普通需求,注意name和email会覆盖系统git配置。

repo填HTTPS或者SSH都可以,推荐SSH在设置好ssh的环境下不需要输入github账户密码(尤其是对于github用强密码+密码管理软件的人来说,在终端输账户密码简直噩梦没错就是我)。

注意:hexo-deployer-git的运行机制是在当前hexo目录下生成一个.deploy_git目录并git push --force上去,因此若直接deploy会让你的repo只剩下初始和最新commit。

比较好的解决方案是在deploy前先

git clone REPO_URL .deploy_git

将现有git包clone到该目录中。

配置完毕后,下次发布整站时只需执行hexo deploy即可。

当然带来的麻烦是你需要考虑要不要track这个劳什子。弄一个gitignore也是极好的。

不过这样做的好处是deploy的速度会灰常快!

安利一个有用的命令:

hexo clean && git add . && git commit && git push && hexo deploy && hexo clean

最后——

Hexo有毒!

Author: Yorushika Shi
Link: https://sh.yorushika.co/post/hexo-deployer-git/index.html
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.