我有一个我不明白的奇怪问题。我有分支 A 和分支 B,它们都明显不同,但是当我将 B 合并到 A 中时什么也没有发生,或者 git 告诉我我已经是最新的了。不过我可以将 A 合并到 B 中。
我做了一个小测试,我在 B 中做了一个小提交,然后将 B 合并到 A,我所做的小更改被合并到 A 中,但没有其他不同的代码行。这几乎就像 A 认为它等于 B 但实际上并非如此。然而,运行 git diff 会显示它们确实不同,所以 git 并不知道这些差异。
* 54272bb (HEAD) started created the controller for poweroffice go
| * 1d5286f (origin/copyNorwayMatsWorkingBranch, copyNorwayMatsWorkingBranch) Merged PR 3328: test
| |\
| |/
|/|
* | 8896671 (origin/NorwayWorkingBranch, NorwayWorkingBranch) test
| * 200ca79 (NorwayMatsWorkingBranch) commite
| * 6ea8307 (origin/add-new-keyvault-factory, origin/NorwayMatsWorkingBranch, add-new-keyvault-factory) COmmit
| |\
| | * 7f42752 (origin/NSEBranch) Merged PR 2549: keyvault factory PR
| | |\
| | | * e5c7c13 Fixed COnflicts
| | | |\
| | | |/
| | |/|
| * | | 2d8c844 Pushing merge
当 “B 是 A 的祖先” 时,这是正常且预期的行为。这可能是因为您已经将
B
合并到 A
中,或者,A
过去从 B
分支出来。由于 B
上没有尚未存在于 A
历史记录中的提交,因此无需合并。
请注意,作为另一个提交的祖先与这些提交的当前 states 无关,这就是
git diff A B
存在差异的原因。
如果运行命令
git log A
,您会看到 B
的提示出现在日志中的某处。