我在http://github.com/ohcibi/prezto有一个 zprezto 的分支
重现我的问题:
git clone http://github.com/ohcibi/preztocd preztogit checkout ohcibi(我有一个分支叫这个名字,这里没有错别字!)git merge master提交日志显示,ohcibi自 4 月 26 日左右上次合并提交以来,只有 3 个提交是新的。所有 3 次提交都不会触及任何冲突的文件(除了一个预计会发生冲突的文件)。
但为什么该合并与其他文件甚至还有冲突呢.gitmodules?
注意:我不需要帮助解决合并冲突!我知道如何做到这一点,并且我故意没有将“添加”git-merge-conflict-resolution-tag到该问题,因为这将是一个错误的标签(所以它没有丢失,不要添加它!)。我想知道为什么这些冲突首先发生(假设冲突文件在两个分支中都没有更改,据我所知,这是合并冲突的常见原因)。
Git 使用树上的三个点来进行合并:您的分支的头部、您要合并的分支的头部以及两者最近的共同祖先。如有疑问,您可以运行merge-base管道命令来找出 git 在最近的共同祖先中看到的提交。
git merge-base <branch1> <branch2>
Run Code Online (Sandbox Code Playgroud)
运行该命令我发现合并库是4f87376b5
距离您上次将 master 合并到您的分支已经过去了不到 5 个月的时间。当您合并时,master 指向 2017-04-24 所做的提交。(现在它是当前合并的合并基础。)
自那时起,master 分支上已进行了 123 次提交,最近一次提交于 2017 年 9 月 19 日。这 123 个提交可能与分支上无法从 master 访问的 137 个提交中的任何更改发生冲突。
Git 并不关注“提交数量”或提交的时间和地点。它所关注的只是每个分支头和合并基础之间的累积差异。您可以运行git diff 4f87376b5 ohcibi并git diff 4f87376b5 origin/master查看合并双方所集成的更改范围。
| 归档时间: |
|
| 查看次数: |
3247 次 |
| 最近记录: |