Discuss / Git / 如果我在dev分支下运行git merge master 会发生什么?

如果我在dev分支下运行git merge master 会发生什么?

Topic source

在合并那一步,我没有像文中说的那样在master分支下运行git merge dev,也就是将当前分支master与指定分支dev合并,而是在dev分支下运行git merge master。

按照我的理解,这样运行后的结果应该是dev分支会变得和master一样,也就是即使在dev分支下,readme.txt也不会有那多加的一行。

然而,实际上却是什么都没发生,dev和master分支依然保持原样,只提示信息“Already up-to-date.”

所以这是为什么呢?难道只能从master合并到dev,不能从dev合并到master?

刚刚试了一下,有四种合并情况: 在master分支下: 1.git merge master;//将master合并到master上,自然master不会改变。 2.git merge dev;//将dev合并到master上,自然dev不会发生改变;而master则需分情况讨论,若master在dev之前则masterdev变为和dev一样,若master在dev之后,则master不变。 在dev分支下: 1.git merge dev;//将dev合并到dev上,自然dev不会发生改变 2.git merge master;//将master合并到dev上,自然master不会改变;而dev则需分情况讨论,若dev在master之前则dev变为和master一样,若dev在master之后,则dev不变。 总而言之,任意在任意一个分支A下均可与其它分支(包括该分支自身)B和并,且和并后分支B不变,而分支A则变为分支A和B中较新的一个分支。 以上可能有不足之处,望大家指正批评!(这篇git教程真心不错,很适合入门(特别是前面的git起源部分),知识点基本都概括其中,自己反复读了几遍,每次都有新的收获,在这里真心多谢廖大神了!)

预言星光

#3 Created at ... [Delete] [Delete and Lock User]

merge不是modify,是合并而不是修改,可以理解为是两者的并集,那么如果当之前的某一个分支已经包含所有修改,自然并集也不会发生改变。不存在之前之后这一说。


  • 1

Reply