合并后保留分支的历史记录

时间:2019-12-16 05:28:54

标签: git

抱歉,Git初学者在这里。我有两个分支,featurefirst-feature。我在first-feature中进行了10次提交,然后将所有内容合并回feature中。我想知道,对于Git工作流程,以下两种情况中哪一种最常见?或者其中哪一种甚至是错误的?

A)first-feature的10次提交也出现在feature的历史记录中

B)feature仅具有一次代表新功能的提交?

我们非常感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

合并两个分支时,git merge保留对合并分支所做的所有提交,除非您使用squash flag。例如,如果您有一个feature branch并且在将其合并到master时有3个提交,则所有这些提交都将显示在master branch的历史记录中,并且看起来就像是提交一直都写在master branch上。

编辑:

保存历史有其优点:

  
      
  • 它使您可以保留任何给定功能的提交历史记录,而不必担心重写提交和更改历史记录。它可以帮助您避免不必要的git恢复或重置!
  •   
  • 不同的功能保持隔离,并且不会干扰现有的提交历史。
  •   
  • 可以帮助您重新集成完整的功能分支。
  •   

反之,如果您更看重线性历史,那么git rebasesquash flag可能是最合适的。您将避免不必要的提交,并使更改更加集中和线性!

答案 1 :(得分:1)

除非您明确指定,否则不会压缩提交。

所以

git checkout feature
git merge first-feature
git push

将复制单个提交

git checkout feature
git merge --squash first-feature
git push

将创建一个合并提交。

通常,建议压榨以保持提交历史记录整洁。