Git Gihub页面:如何在两个(分叉的)存储库之间合并?
我有一个网站(example.org)托管在Github页面上。内容位于我的“示例”组织的“生产”存储库的Git Gihub页面:如何在两个(分叉的)存储库之间合并?,git,github,jekyll,github-pages,Git,Github,Jekyll,Github Pages,我有一个网站(example.org)托管在Github页面上。内容位于我的“示例”组织的“生产”存储库的master分支中 示例/制作:master =>Git example.org 在我的个人帐户中,我还有一个存储库分支,作为存储库“暂存”,在那里我实际创建内容(在分支master中,但也有功能分支),并准备发布的所有内容。它还发布在Github页面上(如personal.Github.io/example.org) personal/example.org:master (示例/生
master
分支中
- 示例/制作:master
- =>Git example.org
master
中,但也有功能分支),并准备发布的所有内容。它还发布在Github页面上(如personal.Github.io/example.org)
- personal/example.org:master
- (示例/生产分支:master)
- =>personal.github.io/example.org
CNAME
文件(否则它会尝试为同一个域发布,但由于它已经在使用中而无法工作),并更改Jekyll的\u config.yml
文件中的相同值(因此网站的内部导航工作正常,跟踪代码)
(我不能将这些文件放在.gitignore中,因为这样它们就不在存储库中了,存储库直接用于Github页面…)
当我现在尝试在“production”上创建一个pull请求时,这些从“staging”到CNAME
和\u config.yml
的更改也会在过程中合并到back-breaking example.org
所以现在我正在挑选从“登台”到“生产”的个人提交——这真是一个痛苦
有没有办法让我在“登台”时必须做的这一次提交不在合并范围内?这不是问题的解决方案,但解决了如何为Github页面上托管的内容提供登台环境的问题: 不要在登台环境中使用Github页面(和个人fork repo),而是使用
staging
分支和其他一些Jekyll主机,如Netlify:
这解决了CNAME
文件问题(因为它与Netlify无关)
需要更改
\u config.yml
,因为Jekyll站点的模板是如何设置的,包括样式表、CSS等({site.baseurl}}/public/CSS/style.CSS
)并创建内部链接({site.baseurl}{{node.url}}
)。这可以通过使用相对链接或使用链接中的域根(例如{{site.baseurl}/public/css/style.css
变成/style.css
)来解决。上述问题的解决方案有两个步骤:
personal.github.io/example.org
更改为staging.example.org
,这样就不必删除CNAME文件,但必须具有不同的内容,staging.example.org
生产
回购和分期
回购都在本地签出,目前是相同的(并且具有相同的CNAME
和\u config.yml
)。签出staging
,对文件进行更改,然后提交并推送它们
如果我们对production
进行正常合并,那么这个更改现在将被合并
但现在我们运行以下命令:
git checkout production
git merge --strategy=ours staging
git push production production:master
()
--strategy=ours
确保在此合并期间,生产文件保持不变。但提交仍标记为合并
如果需要,我们还可以编辑第2步和第3步之间的提交消息,使其更具描述性:我们合并了两个分支,但使其保留了文件的“我们”(在本例中为:production
)版本