我们公司的 Git 工作流程如下:我们有一个 master
分支,一些 feature/*
分支用于开发新功能,并 merge 回 master
当工作完成时,还有 release/*
分支。这些分支是在产品发布之前创建的,专为错误修复而设计,没有新功能,然后这些错误修复偶尔会 merge 回 master
分支。
有时,release/*
分支中的特定提交是我们不想想要 merge 回的更改master
:例如当版本号递增时。由于分支中还有其他重要的修复,肯定有人 迟早会将上述 local 提交 merge 到 master
中,从而破坏分支中的某些内容主要分支。
我所知道的当前“解决方案”是在本地提交完成后立即将 release/*
分支 merge 到 master
中,还原 本地提交然后推送。它有点管用,但历史并不干净。此外,这不会阻止本地提交被 merge 到 master
之外的另一个分支。
在所描述的工作流程中是否有更好的方法来解决该问题?
最佳答案
据我所知,如果不 merge 其所有父提交,就不可能 merge 提交,这听起来像您正在尝试做的事情。
但是,对您的工作流程稍作更改可能会解决此问题。
类似于Git Flow模型,您可以创建一个 hotfix/*
分支来修复错误,而不是直接提交到 release
分支。这个分支可能应该基于 master
(在第一次提交时是任何相关 release
分支的父级),并且应该 merge 到 master
以及它影响的任何 release
分支。
这样一来,release
分支永远不需要 merge 到 master
中,并且可以保留用于特定于版本的修复。
关于Git:如何防止特定提交被 merge 到另一个分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36437009/