抱歉,如果这个问题存在,我惊讶地找不到它:/
如何在同一分支和同一提交中的两个文件之间执行git diff
?
即git diff fileA.php fileB.php
(理想情况下,git
提供易于阅读的颜色编码....或类似于程序BeyondCompare所做的!
如果要在两个任意文件上使用git diff
,可以使用git diff --no-index <file_a> <file_b>
.无需在git
中跟踪这两个文件即可正常工作。
你不需要 git,只需使用diff fileA.php fileB.php
(如果你想并排比较,也可以使用 vimdiff)
如果要比较的文件位于工作副本中,则可以按照其他文件的说明简单地使用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
统一差异,-r
递归,-N
将丢失的文件视为/dev/null
)。
它工作得很好,但仍然没有颜色,并且几乎没有 git 风格的自动分页。如果您想修复两者(我这样做),请安装colordiff
并像这样使用它:
colordiff -burN file_or_dir1 file_or_dir2 | less -R
这提供了非常接近实际git diff
的输出和接口。
如果要在同一目录中比较两个本地文件,只需使用 diff。
diff fileA.php fileB.php
只需使用常规差异。
diff -Nua fileA.php fileB.php