我自己也陷入了一种对我没有意义的情况。我会尽力描述它。
我有一个开发分支,我已通过git checkout develpment && git merge master
将master合并到其中。我在这里没有遇到任何合并冲突。
我感兴趣的是一个特定的提交,让我们说它是abcd123
。当我运行git branch --contains abcd123
时,它会报告development
和master
都包含abcd123
。当我git log
时,它会在abcd123
和development
上的提交列表中显示master
。
git show abcd123
显示包含对两个文件的更改。但我似乎无法找到这些变化。当我查看文件时,我无法在development
和master
上看到这些更改。当我检查git log -- path/to/file1
时,我看不到abcd123
,git log -- path/to/file2
也是如此。
这里发生了什么?提交如何存在,但显然不存在变化?
abcd123
最初可能是在合并到development
的另一个分支(master
除外)中引入的。我不知道这是否会产生影响。
顺便说一句,当我尝试git checkout master && git merge development
(如上所示将master
合并到development
之后)时,我会遇到很多合并冲突,包括file1和file2。这似乎表明master
实际上没有合并到development
- 如果git merge development
已经执行,那么git merge master
是否应该成功?为了引起更多混淆,git branch --merged development
说master
已合并到development
。我想这与git merge master
....
此时的任何建议都非常感谢。
编辑:此时似乎问题是由于合并失败或以某种方式搞砸了。如果有人还在阅读,我认为torek回答的方向似乎最有成效。