在Github Pages上创建站点的登台和生产版本

Jac*_*cob 10 git github-pages

我想使用Github Pages发布一个生产网站(例如,www.example.com)以及同一网站的暂存版本(例如,staging.example.com).

我在Github中为生产站点设置了一个repo(例如my-jekyll-website),创建了一个gh-pages分支,并将repo的根级别的CNAME文件设置为www.example.com.效果很好.

现在,能够将更改推送到staging.example.com的最痛苦的方法是什么?

我尝试过的一件事是在Github上设置第二个远程仓库(例如my-jekyll-website-staging),然后将其作为远程添加到我的本地git配置中.效果很好,除了需要将repo中的CNAME文件更改为staging.example.com才能使其正常工作.这不好,因为当我想部署到生产时,我需要将CNAME文件更改回www.example.com.不理想.

我已经看过使用git 过滤器内容驱动程序,但如果我理解正确,那就是在本地修改文件,而不是将不同版本的文件推送到不同的遥控器.

编辑:我还考虑过根本不使用自定义域进行暂存:即,只使用username.github.io/my-jekyll-website-staging.不幸的是,然后我的站点根目录相对链接(例如/images/foo.bar)中断了,因为baseurl现在在生产和登台之间是不同的.

Sha*_*wen 5

从以上评论中拉出:

[M]将staging git分支放入生产分支并推送[.]你可以让CNAME永久地指向它们各自的repos,但是分别操作repos.

评论由Jonathan Chan撰写

像@JonathanChan所说:维护两个独立的分支,然后在每个分支中劫持你的CNAME文件.这样,本地更改(对CNAME)将不会提交到存储库.