多端实现 Hexo 文章发布
传送门
大体思路
同步两个端代码的思路和 Github 推拉源码思路差不多,发布的时候只需要保证当前在使用的端的文件最新就行。
需要在仓库新建一个分支,让后把它重新作为默认分支。例如,若原来部署 Hexo 在 github 上的分支是 master (好像现在很多变成了 main),这时候应该是有且只有一个分支,那么就再新建一个 hexo 分支(名字随便),并且设置其为默认分支。
- 这里需要解释一下,这个 hexo 分支就是我们以后存放博客源文件的分支,只需要在其上更新内容就行,原来的 master 分支会因为
hexo d -g
指令编译 hexo 后自动更新。
windows 端操作
接下来讲讲具体操作。
首先,在 windows 上的本地博客根目录里面执行代码。
# 执行代码前,需要删除根目录下和主题目录(theme)下隐藏的 `.git` 文件夹 |
执行完后,此时博客的源文件应该同步到 github 博客仓库(或者是自己搭建的 git 服务)的 hexo 分支上了。
(这里记得在仓库把新的 hexo 分支作为默认分支)
# 在仓库下执行 |
注意
- 本人是在自己的服务器上搭建的 git 服务,并且用 nginx 反向代理,搭建操作
- 这里有一个坑,之前在服务器上博客仓库中 hooks 下的 post-receive 文件中是把仓库中的主分支推到 nginx 托管的目录下,现在主分支变成了 hexo,所以需要修改一下 post-receive 文件,否则就将源码反代到了 nginx 托管的目录下从而导致 403
- 重新修正 post-receive 文件
git --work-tree=/var/www/hexo --git-dir=/var/repo/hexo_static.git checkout -f master
Mac 端操作
接着在 Ma c 上选个文件夹先把仓库克隆下来。(需要克隆的是 hexo 分支,所以上面要设置成默认分支)
git clone xxx(仓库的地址) |
在这个选好的文件夹下重新安装 hexo,因为 .gitignore
中过滤了 node_modules\
所以需要重新部署 hexo 获取其必要组件。
# 没安装 homebrew 的话执行下面代码安装 |
最后在 Mac 上做一些修改,调整版本冲突后的合并策略,执行下面代码
# 添加源文件 |
此时,依次执行 hexo clean
/ hexo g
/ hexo d -g
更新博客,无报错就是成功了
以后在任何端更新博客前先 git pull
一下,然后只需要记得在 hexo d -g
之前,用 git push
把修改的推送到仓库
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 SuburbiaXX!