为客户清洁git分支

时间:2015-04-11 20:14:52

标签: git

在工作中,我们有一个git流程 - 开发人员纠正开发分支中的给定缺陷 - 然后他们必须在integ分支中放置(*)他们的更正 - 我们的客户必须可以访问此integ分支,因为他们想查看我们的代码并自行重新编译

客户想要一个干净的分支,理想情况下每个纠正缺陷的提交。

但我们的开发人员可能会在几次提交中完成他们的工作(一个缺陷由开发分支中的几个提交更正)

如果我们简单地将开发分支合并到integ分支中,客户端将在历史记录中看到开发人员执行的所有原子提交,这应该被避免。

与(*)有关的问题: 我们如何为客户清理分支机构? - 不对每个缺陷强加一次提交"对开发者的统治 - 理想情况下,不要挑选和压缩与integ分支中每个缺陷相对应的原子提交(因为挑选重复提交)

编辑: 我不想执行git rebase交互式操作并从开发分支中压缩提交。它是开发人员分支,他们从开发人员的角度出于一个很好的理由拆分提交(从技术上或逻辑上来说,创建几个提交是有意义的)。 从客户的角度来看,他们并不关心缺陷是否被多次提交纠正的事实,他们希望在他们的分支上有一个干净的历史

2 个答案:

答案 0 :(得分:2)

您只能将合并显示为与git log --merges合并。

答案 1 :(得分:2)

如果我正确读取它,您只需要在从dev分支合并时包含--no-ff标志(无快进)。您的修补程序将从 dev 分支合并到 integ 分支中,作为包含所有更改的单个提交。

几年前,有一个众所周知的博客文章A successful Git branching model提倡这种工作方法。