在工作中,我们有一个git流程
- 开发人员纠正开发分支中的给定缺陷
- 然后他们必须在integ
分支中放置(*)他们的更正
- 我们的客户必须可以访问此integ
分支,因为他们想查看我们的代码并自行重新编译
客户想要一个干净的分支,理想情况下每个纠正缺陷的提交。
但我们的开发人员可能会在几次提交中完成他们的工作(一个缺陷由开发分支中的几个提交更正)
如果我们简单地将开发分支合并到integ
分支中,客户端将在历史记录中看到开发人员执行的所有原子提交,这应该被避免。
与(*)有关的问题:
我们如何为客户清理分支机构?
- 不对每个缺陷强加一次提交"对开发者的统治
- 理想情况下,不要挑选和压缩与integ
分支中每个缺陷相对应的原子提交(因为挑选重复提交)
编辑:
我不想执行git rebase
交互式操作并从开发分支中压缩提交。它是开发人员分支,他们从开发人员的角度出于一个很好的理由拆分提交(从技术上或逻辑上来说,创建几个提交是有意义的)。
从客户的角度来看,他们并不关心缺陷是否被多次提交纠正的事实,他们希望在他们的分支上有一个干净的历史
答案 0 :(得分:2)
您只能将合并显示为与git log --merges
合并。
答案 1 :(得分:2)
如果我正确读取它,您只需要在从dev分支合并时包含--no-ff
标志(无快进)。您的修补程序将从 dev 分支合并到 integ 分支中,作为包含所有更改的单个提交。
几年前,有一个众所周知的博客文章A successful Git branching model提倡这种工作方法。