我想使用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 filter content drivers,但如果我理解正确,那就是在本地修改文件,而不是将不同版本的文件推送到不同的遥控器。
编辑:我还考虑过根本不使用自定义域进行暂存:即只使用username.github.io/my-jekyll-website-staging。不幸的是,然后我的站点根目录相对链接(例如/images/foo.bar)中断了,因为baseurl现在在生产和登台之间是不同的。
答案 0 :(得分:5)
从上面的评论中拉出来:
[M]将升级git分支放入生产中 分支和推送[。]你可以保持CNAME永久指向 他们各自的回购,但分别操纵回购。
最初由 Jonathan Chan
撰写评论
按照@JonathanChan的说法:维护两个单独的分支,然后在每个分支中hijack保存您的CNAME文件。这样,本地更改(对CNAME)将不会提交到存储库。