如何比较Git冲突文件中的“base”版本与“theirs”版本?

20

如何告诉git diff显示文件foo.txt的基础版本和“它们”的版本之间的更改?

我可以通过git show :1:foo.txtgit show:3:foo.txt查看每个版本-是否有一种简单的方式比较这两个版本?


1
这个链接展示了如何查看失败的补丁:https://dev59.com/OHI95IYBdhLWcg3w2h96 --也就是,它解释了如何查看“theirs”的补丁。 - Eddified
2个回答

25
git diff :1:foo.txt :3:foo.txt

更多信息请参考man gitrevisions;查找:[<n>:]<path>


Git一定是在我提问的时间和今天之间引入了这种语法,谢谢你带来的好消息 :) - Rafał Dowgird
这个语法已经存在多年了。为了确保,我在一个相当古老的版本(2008年4月的1.5.5版)中尝试了一下,它确实可以工作。 :) - jsageryd
我发誓我试过了,所以要么是我打错了一些愚蠢的字,要么就是在某个版本中出现了问题。我想我永远不会知道了 :) - Rafał Dowgird
为了节省一些打字:function gdf13 { git diff ":1:./$1" ":3:./$1"; } - Ciro Santilli OurBigBook.com
3
请问有人能指导我查找 git diffgit show 的文档,即 :1:3 的语法吗?我在 git diffgit show 的文档中没有找到相关内容。 - radix
1
请查看man gitrevisions中的:[<n>:]<path> - jsageryd

2

只需键入git diff,它将仅显示冲突。

更多阅读:高级合并

请注意diff--base--theirs参数。


我只想看到“他们”的更改。当块很大时,仅从git diff的输出中推断出这一点相当困难。 - Rafał Dowgird
如果你的意思是说很难看到,那么你可能想使用 git difftool,然后选择你最喜欢的差异界面,例如meld。 - Thomas Rawyler
谢谢,我知道这个(还有diff3冲突样式选项)。我只是想快速查看文件上“他们”的更改。 - Rafał Dowgird
关于 diff 命令的 --base--theirs 参数:它们能否用于比较 --base--theirs?这正是我所需要的。 - Rafał Dowgird
抱歉,我误解了你的意思。git diff --base --theirs 似乎在输出中没有任何更改。 - Thomas Rawyler
@ThomasRawyler 的链接已失效。 - reto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接