如何在GIT中避免将完整的合并历史记录转换为master?

时间:2015-09-04 12:47:42

标签: git

我有3个分支

  1. 开发
  2. 发布分支。
  3. 根据一般的分支策略,所有开发活动(签入/签出等)都在发布分支中执行,发布就绪代码合并到开发分支以及主分支。 / p>

    我的期望:假设我在发布分支中总共有大约500次提交。我要求在发布分支的最终合并期间开发分支,开发分支应该具有整个提交历史的所有提交。即500个提交,而合并到主服务器不应该具有发布分支中发生的所有历史记录(提交)。

    它应该更像是分支中第一次提交和最后一次提交的差异,而不是所有中间提交。 (主分支不应该有500个提交)

    是否有可能实现这一点,如果是这样的话?

3 个答案:

答案 0 :(得分:2)

听起来你想要squash your commits

当您进行多次提交时,压缩提交非常有用,并且您希望将它们“压缩”为一次提交。

答案 1 :(得分:1)

压缩许多提交需要很长时间。你可以做的就是合并没有快进。

您可以遵循以下策略:

转移开发并运行

git merge release

然后转到掌握并运行

git merge --no-ff develop

这将在master中创建一个合并提交,它实际上相当于500次提交。

这种策略的优势在于它不会弄乱您的git历史记录,并且承诺不会被丢失'而挤压将完全修改你的历史,恕我直言,我不认为修改500件有价值的历史是一个好主意

答案 2 :(得分:0)

你可以创建一个可能叫做develop_merge的develop分支。压缩该分支上的提交,并将其合并到master中。原始分支仍然具有所有历史。