109

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

如何git diff在同一分支和同一提交中的两个文件之间执行?

IEgit diff fileA.php fileB.php

(理想情况下,提供易于阅读的颜色编码git......或类似于 BeyondCompare 程序所做的!)

4

6 回答 6

271

如果要git diff在两个任意文件上使用,可以使用git diff --no-index <file_a> <file_b>. 不需要跟踪这两个文件git即可。

于 2014-01-06T15:46:01.440 回答
85

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

于 2012-12-20T02:21:34.533 回答
16

如果您要比较的文件在您的工作副本中,您可以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
于 2012-12-20T02:49:30.963 回答
5

为了使常规 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

于 2012-12-20T04:12:46.807 回答
0

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

diff fileA.php fileB.php
于 2012-12-20T02:21:48.960 回答
-4

只需使用常规差异。

diff -Nua fileA.php fileB.php
于 2012-12-20T02:22:49.933 回答