0%

Hexo双分支建立Pages

安装Hexo环境

1
yarn global add hexo-cli

这时可能会找不到刚安装的 hexo-cli 在哪,可以使用命令

1
sudo find / -type d -name node_modules

最后找到在 /home/guo/.config/yarn/global/node_modules/hexo-cli/bin/hexo 中。建立可执行命令的软链接

1
sudo ln -s /home/guo/.config/yarn/global/node_modules/hexo-cli/bin/hexo /usr/local/bin/hexo

建立一个 Hexo 的新项目,初始化操作

1
2
3
hexo init lostrain
yarn install
yarn add hexo-deployer-git --save

撰写新文章

1
hexo new new_article

然后就可以在编辑器中编辑 source/_posts/new_article.md 文件了。编辑完之后可以运行下面的小脚本进行预览

1
2
3
4
5
#!/bin/sh
hexo clean
hexo g
gulp
hexo s --watch

使用hexo-deployer-git来自动同时推送源码和静态资源,下次写作完之后只需addcommit_config.yml的配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
- type: git
repo: [email protected]:lostrain/lostrain.git
branch: src
extend_dirs: /
ignore_hidden: false
ignore_pattern:
public: .
- type: git
repo: [email protected]:lostrain/lostrain.git
branch: master

建立双分支

一般我们使用GitHub Pages或者Gitee Pages来部署博客,但项目里放的是博客供访问的静态资源,也就是源码生成后的内容,那博客的源码难道要手动管理吗?其实我们可以把博客源码也托管在同一个项目里,使用不同的分支来管理源码和静态资源。比如src分支保存博客源码,master分支保存静态资源。

首先新建Pages的空白项目,需要是完全空白的。进入你的博客目录,为你的项目初始化。

1
2
3
4
5
6
git init
git remote add origin [email protected]:lostrain/lostrain.git
# 建立src分支
git checkout -b src
git add .
git commit -m 'init'

推送文章

这些工作都做好了,可以运行下面的小脚本将 srcmaster 分支的内容同时推送到远程仓库。

1
2
3
#!/bin/bash
rm -rf .deploy_git
hexo g -d

注意点

Pages 项目中,应该把 src 分支设置成默认分支,因为我们从这个分支拉取的代码。而自己部署页面的话,在 clone 项目后则需要 git checkout master 来切换到静态文件的分支。
还要注意的一点是,当我们新git clone一个主题后,要进入主题的目录将.git目录删除,否则主题目录下的内容将无法推送上去。

自己要在其他地方部署的话,只需将项目 clone 下来之后, checkoutmaster 分支,再运行下面的小脚本(强制更新本地内容)

1
2
3
4
#!/bin/bash
git fetch --all
git reset --hard origin/master
git pull