繁体   English   中英

防止git merge到master分支

[英]preventing git merge to master branch

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

如果将新功能或错误修复添加到主服务器中,我希望能够将它们提取/合并到我的项目实例(分支)中,但我几乎不想将更改从分支合并到主服务器。 最近这种情况发生了错误,并造成了一些严重的问题。 更新存储库的git pull将所有内容合并到主分支中,然后被推回到主repo中。

是否有任何简单的方法可以禁止合并回主人? 或者至少需要一些--force标志?

您可以通过禁止任何人推送主分支来确保不与其他分支合并到主服务器。 有权威的人可以做到这一点。 Gitolite允许您精细调整对分支的访问。 除非您是特定用户,否则您还可以编写自己的服务器端挂钩并拒绝更新主分支。

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

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

要使用“主遥控器”中的错误修复程序更新“自定义实例”,您需要键入类似的内容

git checkout <custom-branch>
git fetch main
git merge main/master

main是您称为master的远程存储库(我更改了名称以避免分支和远程之间的混淆)

对于本地分支, 请不要main指定为远程跟踪分支,而是指定特定于实例的远程分支。 即每个自定义实例一个远程存储库。

要将更改推送到自定义实例,请使用

git push

在极少数情况下,您需要将更改上游推送到“主”分支使用

git push main

如果你只是想避免合并到master中,你可以使用pre-merge hook来禁止它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM