同步GitHub pages和 Gitee pages方法
问题 这两天在整理博客,一直使用GitHub和Gitee的Pages功能作为博客的静态托管站。但是遇到以下几个问题:
每次PUSH都要向两个网站分别提交,操作繁琐 域名问题, 博客使用的Hugo博客生成系统,根域名是在config.yaml配置的,导致最终的域名管理比较混乱。比如配置了github的域名,提交给gitee时忘记改,就会导致某些图片或内容访问不稳定。 Gitee发布比较麻烦,需要手动更新提交 解决方法 对于多次提交的问题,最初解决方法是使用以下命令:
$ git remote set-url --add origin git@github.com:gqw/gqw.github.io.git $ git remote -v origin git@gitee.com:gqw/gqw.git (fetch) origin git@gitee.com:gqw/gqw.git (push) origin git@github.com:gqw/gqw.github.io.git (push) 方法解决。添加过后每次提交都会同时往两个仓库提交。
但是为了解决第二个问题,即不同域名问题,最终并未使用此方案。
解决不同域名问题,解决思路是通过git hook在提交和上次时在hook脚本里修改Hugo生成好的内容。
首先准备好远程url $ git remote -v github_auto_change_domian git@github.com:gqw/gqw.github.io.git (fetch) github_auto_change_domian git@github.com:gqw/gqw.github.io.git (push) origin git@gitee.com:gqw/gqw.git (fetch) origin git@gitee.com:gqw/gqw.git (push) 然后在仓库的.git/hooks目录中添加commit-msg文件,内容为: commit_msg=$(cat $1) echo $commit_msg if [[ $commit_msg =~ "replace domain to github" ]]; then # 向github上传前会修改仓库内容,并做一次提交记录, # 这时不需要重新生成文档 echo "replace domain to github" else # 清空生成目录内容 rm -rfv .