防止git合并到主分支

防止git合并到主分支,git,git-merge,git-pull,Git,Git Merge,Git Pull,我使用分支来创建和部署平台外的自定义实例。这些实例通常从“主”分支的分支开始,进行一些定制,部署到测试和生产中,最后归档 如果新功能或错误修复被添加到主程序中,我希望能够获取/合并它们到我的项目实例(分支)中,但我几乎不想将分支中的更改合并回主程序。这是最近发生的错误,造成了一些严重的头痛。用于更新存储库的git pull将所有内容合并到主分支中,然后被推回到主repo中 有没有什么简单的方法来禁止合并回主控?或者至少需要一些--force标志?通过禁止任何人推动主分支,您可以确保不会从其他分支

我使用分支来创建和部署平台外的自定义实例。这些实例通常从“主”分支的分支开始,进行一些定制,部署到测试和生产中,最后归档

如果新功能或错误修复被添加到主程序中,我希望能够获取/合并它们到我的项目实例(分支)中,但我几乎不想将分支中的更改合并回主程序。这是最近发生的错误,造成了一些严重的头痛。用于更新存储库的git pull将所有内容合并到主分支中,然后被推回到主repo中


有没有什么简单的方法来禁止合并回主控?或者至少需要一些--force标志?

通过禁止任何人推动主分支,您可以确保不会从其他分支合并到主分支。一个有权威的人可以做到这一点。Gitolite允许您微调对分支的访问。您也可以编写自己的服务器端钩子,并拒绝更新主分支,除非您是特定用户。

如果您只是想避免合并到主分支,您可以使用预合并钩子来禁止它。

Git非常乐意使用多个远程存储库

我建议为每个自定义实例使用一个远程存储库。这不会改变您的工作流,因为Git可以将任意两个分支合并在一起,而不管它们来自何处

要使用“主遥控器”中的错误修复更新“自定义实例”,请键入以下内容

git checkout <custom-branch>
git fetch main
git merge main/master
在极少数情况下,您需要将更改推送到“主”分支的上游使用

git push main

否决票是怎么回事?让我知道我的答案有什么问题,我会澄清的。谢谢。嗨,亚当,我不认为我否决了你的答案。事实上我很确定我把它加高了。但是如果我犯了错误,对不起。另外,Gitolite对于我们现在的需求来说有点太多了,但是我可以看到服务器端钩子是如何满足我的需求的。我建议你转一转。最大的好处是它大大简化了密钥管理。哦,我不是说你被否决了。你不能得到那个信息。我真的很好奇为什么我的回答没有让别人满意,或者我的回答有错。谢谢。这正是我们工作的方式,但不知何故,有人做了一个git推送——全部然后是git拉送,或者类似的东西,它合并了所有东西。至少这是我所理解的。不要用git-pull。Git先获取,然后根据更新的远程跟踪分支采取相应的行动,合并、重定或重置本地分支。只要确保在推送更改后不要重新设置基址,否则事情会变得糟糕。我没有发现任何证据表明存在任何诸如预合并挂钩之类的东西。
git push main