git diff两个文件在同一个分支上,同一个提交

d-_*_*_-b 89 git

对不起,如果这个问题存在,我出乎意料地找不到它:/

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

git diff fileA.php fileB.php

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

小智 239

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

  • +1,因为它回答了初始问题(不管"为什么你会这样做"......可能有原因) (32认同)
  • +1 git diff比普通差异更具可读性. (28认同)
  • `--word-diff`按字词突出显示变化,而不仅仅是线条 (19认同)
  • 对于使用PowerShell的我们来说,这是在存储库中获取两个文件的比较容易的方法。 (2认同)
  • 以下按“活动”排序时,下面2个较早投票,较少投票(且较不有用)的答案如何列出此出色答案???我什至不算标记为正确的答案。不管怎样,谢谢! (2认同)

Jar*_*eer 76

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

  • 这可能有用,但它不是git diff.这是一种完全不同的输出格式. (24认同)
  • 'vimdiff`获胜!谢谢! (19认同)
  • 这不符合原始问题 (11认同)
  • 我不同意,OP并不清楚,但他提到BeyondCompare的事实暗示他并不是专门寻找一个`git diff`而只是一个易于阅读的差异.事实上,他接受了我的答案,因为他正在寻找的东西也表明它确实回答了它. (7认同)
  • 仔细阅读答案.命令是`diff fileA fileB`而不是`git diff fileA fileB` (3认同)

Pau*_*cés 13

如果要比较的文件位于工作副本中,则可以diff像其他文件一样使用,但是如果文件是某个版本,则可以为每个文件指定修订版本

git diff <revision_1>:<file_1> <revision_2>:<file_2>
Run Code Online (Sandbox Code Playgroud)

如上所述:https://stackoverflow.com/a/3343506/1815446

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

git diff <revisionX>:fileA.php <revisionX>:fileB.php
Run Code Online (Sandbox Code Playgroud)

  • 注意:[修订版](https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection#_revision_selection) 可以是 `HEAD~2`、SHA-1、分支名称、 ETC。 (2认同)

mvp*_*mvp 6

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

diff -burN file_or_dir1 file_or_dir2
Run Code Online (Sandbox Code Playgroud)

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

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

colordiff -burN file_or_dir1 file_or_dir2 | less -R
Run Code Online (Sandbox Code Playgroud)

这提供了非常接近实际的输出和界面git diff

  • -1,因为“你不能”是不正确的(参见:http://stackoverflow.com/a/13965200/968531) (4认同)

归档时间:

查看次数:

32072 次

最近记录:

9 年,11 月 前