1

在 Git 中,标准的合并算法可以让你比较两个分支中文件的最终状态,这意味着我必须记住或猜测两个分支中导致该点的更改是什么。

通过显示共同的祖先,在 .gitconfig 中设置 merge conflictstyle=diff3 会有所帮助。但是,我仍然必须在脑海中进行差异化——即扫描不同的部分以找出祖先和分支 A 之间以及祖先和分支 B 之间的变化,然后最后将两者应用于祖先,或者应用一个分支对另一个的更改。

有没有工具可以为我做到这一点?我希望能够将一个分支中发生的更改与另一个分支中发生的更改进行比较。理想情况下,该工具还会向我显示我正在合并的更改的提交消息,这样我就不必猜测意图。

4

1 回答 1

2

git cherry并且git patch-id可以帮助您找到您正在寻找的东西。

将 fork-point 和head之间的每个提交的变更集(或“差异”)与 fork-point 和 upstream之间的每个提交进行比较。提交与从程序获得的补丁 idgit patch-id进行比较。

上游分支中不存在的每个提交都会报告其 id (sha1),并以符号为前缀。在上游分支中已经有等效变化的以减号 ( -) 为前缀,仅在分支中存在的以加号 ( +) 为前缀:

           __*__*__*__*__> <上游>
          /
分叉点
          \__+__+__-__+__+__-__+__> <头>
于 2014-01-03T18:17:46.103 回答