当两个分支不同但两个分支中没有新的提交时,为什么git不会合并更改?

tru*_*ktr 6 git git-merge

例如,

我的主分支里面有东西.另一个叫做other_branchstuff + more_stuff的分支.每个分支都没有任何提交.

如果我签出master然后尝试合并other_branch,git说"已经是最新的".没有任何事情发生.为什么在这种情况下不会将more_stuff合并为master?这是git的设计方式吗?

注意:other_branch是从较早的master提交创建的.

ral*_*nja 6

这很简单.如果git说"已经是最新的",这意味着分支机构没有分歧.如果至少有一个分支包含另一个分支没有的提交,则两个分支已经分歧.

我不确定你的意思是什么东西+ more_stuff在里面.如果您已将新文件添加到other_branch(或更改现有文件),并使用"git add"和"git commit",则other_branch历史记录将与主分支不同.由于git表示没有合并的更改,因此该分支上的历史记录没有变化,即您没有提交任何内容.

  • 哦,我明白了.这对初学者来说不是很明显.other_branch包含与master相同的提交,因为我是从较早的master提交中启动的.我很困惑,因为当我签出other_branch时,我看到不同的文件,所以我认为git merge会将文件合并到master中.我明白它现在是如何运作的.git merge基于提交,而不是当前的工作树. (2认同)