同一分支上的两个文件,同一提交

对不起,如果这个问题存在,我惊讶地找不到它:/

How can I perform a git diff between two files within the same branch & same commit?

git diff fileA.php fileB.php

(ideally with the easy to read color coding that git offers....or similar to what the program BeyondCompare does!)

46165 次浏览

你不需要 git,只需要使用 diff fileA.php fileB.php(或者 vimdiff,如果你想并排比较)

如果您想要区分同一目录中的两个本地文件,只需使用区分。

diff fileA.php fileB.php

用普通差速器。

diff -Nua fileA.php fileB.php

如果您想要比较的文件在您的工作副本中,您可以简单地使用 diff,正如其他文件所指出的那样,但是如果文件在某个修订版本中,您可以为每个文件指定一个修订版本

git diff <revision_1>:<file_1> <revision_2>:<file_2>

正如这里指出的: https://stackoverflow.com/a/3343506/1815446

在您的情况下(为两个文件指定相同的版本) :

git diff <revisionX>:fileA.php <revisionX>:fileB.php

为了使普通 gnu diff 看起来更像 git diff,我建议使用以下参数:

diff -burN file_or_dir1 file_or_dir2

(其中 -b忽略空格,-u统一 diff,-r递归,-N将丢失的文件视为 /dev/null)。

它工作得很好,但仍然没有颜色和 git 风格的自动分页几乎是不存在的。如果你想同时修复这两个问题(我就是这么做的) ,安装 colordiff并像这样使用它:

colordiff -burN file_or_dir1 file_or_dir2 | less -R

这给出了非常接近实际 git diff的输出和接口。

如果您想对两个任意文件使用 git diff,可以使用 git diff --no-index <file_a> <file_b>。在 git中不需要跟踪这两个文件就可以工作。