请稍侯

同时使用 GitHub 和 GitCafe 托管博客

02 April 2014

在 V2EX 上看到一个帖子,里面提到将博客同时托管在 GitHub 和 GitCafe 上,国外访客解析到 GitHub,国内访客解析到 GitCafe。禁不住 GitCafe 速度的诱惑,于是也动手在 GitCafe 上创建了一个博客镜像,并通过修改 git 设置实现了同步提交。

一、将仓库拷贝到 GitCafe

在 GitCafe 上创建一个和用户名相同的仓库,如我的是 liberize。

在账户设置中添加公钥,可以使用之前 GitHub 的公钥,只需要复制 ~/.ssh/id_rsa.pub 的内容。

打开 .git/config,修改远程仓库,将 origin 改为 github,并添加 gitcafe:

[remote "github"]
    fetch = +refs/heads/*:refs/remotes/github/*
    url = git@github.com:liberize/liberize.github.com.git
[remote "gitcafe"]
    fetch = +refs/heads/*:refs/remotes/gitcafe/*
    url = git@gitcafe.com:liberize/liberize.git

之后将仓库 push 到 GitCafe 上(必须使用 gitcafe-pages 分支):

git push -u gitcafe master:gitcafe-pages

GitCafe 上在“项目管理”中找到“自定义域名”,添加要绑定的域名,比如我是 liberize.me。

二、实现同步提交

因为 GitHub 和 GitCafe 的 Pages 使用不同的分支,所以无法在 remote 里添加两个 url:

[remote "all"]
    url = git@github.com:liberize/liberize.github.com.git
    url = git@gitcafe.com:liberize/liberize.git

然后执行 git push all master 同时 push。

可以在 .git/config 中添加一个 alias 来实现:

[alias]
    publish = !sh -c \"git push github master && git push gitcafe master:gitcafe-pages\"

当需要 push 的时候,只需执行 git publish 就可以了。