我们公司的Git工作流程如下:我们有一个master
分支,一些feature/*
分支用于开发新功能,这些功能在作业完成后合并回master
,还有release/*
个分支机构。这些分支是在产品发布之前创建的,专为错误修复而设计,没有新功能,然后这些错误修复会偶尔合并到master
分支。
有时,release/*
分支中的特定提交是我们不想要合并回master
的更改:例如,当版本号递增时。由于分支中还有其他重要的修复,因此 迟早会将本地提交合并到master
中,从而破坏主分支中的某些内容。
当前"解决方案"我知道在本地提交完成后立即将release/*
分支合并到master
,恢复本地提交然后推送。它有点工作,但历史不干净。此外,这不会阻止将本地提交合并到另一个分支而不是master
。
在描述的工作流程中有没有更好的方法来解决这个问题?
答案 0 :(得分:3)
据我所知,如果没有合并所有的父提交,就不可能在提交中合并,这听起来就像你想要做的那样。
但是,对您的工作流程进行细微更改可以解决此问题。
与here模型类似,您可以创建hotfix/*
分支来修复错误,而不是直接提交到release
分支。此分支可能基于master
(在第一次提交时是任何相关release
分支的父级),并且应该合并到master
以及任何{{}它会影响分支。
这样,release
分支永远不需要合并到release
中,并且可以保留用于特定于发行版的修复。
答案 1 :(得分:0)
为什么不将release/*
分支上的错误修复隔离为单独提交(即没有发布版本更新),然后将这些提交挑选到master
,如同很好地描述{{3 }}?