将master合并到branch并将branch合并到master中有什么区别?

时间:2014-10-15 13:44:06

标签: git merge

我有一个名为master的分支,另一个名为dev。通常,我会对dev进行测试和改进,当确定它没问题时,我将其合并到master,然后标记并发布应用程序的新版本。我遇到了两个合并案例:

  1. master合并到dev
  2. dev合并到master
  3. 但我不确定两者有何不同......欢迎提出任何解释。

1 个答案:

答案 0 :(得分:26)

TL; DR

主要区别在于masterdev分支最终指向的位置。 enter image description here

完整解释

将一个分支合并到另一个分支不是对称操作:

  • dev合并到master
  • master合并到dev
通常,

不等同。这是一个解释两者之间差异的说明性示例。让我们假设你的回购看起来如下:

enter image description here

如果您将dev合并到master

如果签出mastergit checkout master),

enter image description here

然后您合并devgit merge dev),您最终会遇到以下情况:

enter image description here

master分支现在指向新的合并提交(F),而dev仍然指向与合并之前相同的提交(E

如果您将master合并到dev

另一方面,如果dev已签出(git checkout dev),

enter image description here

然后您合并mastergit merge master),您最终会遇到以下情况:

enter image description here

dev分支现在指向新的合并提交(F',而master仍然指向与合并之前相同的提交(D)。

全部放在一起

enter image description here