如何显示部分或全部文件之间的差异? GIT

时间:2011-04-09 19:37:20

标签: git

与主题一样:如何显示某些或所有文件之间的差异?

抱歉,我搞砸了我的问题。我的意思是分支之间存在一个或多个或所有文件的差异。

3 个答案:

答案 0 :(得分:24)

或者可能更有帮助:

git diff <commit1> <commit2> -- path/to/file.cpp path/to/anotherfile.cpp path/to/subdir

你也可以(例如bash)

git diff {<commit1>,<commit2>}:path/to/file.cpp

这样你甚至可以

git diff <commit1>:path/to/file.cpp <commit2>:path/to/anotherfile.cpp
这是非常疯狂的强大,恕我直言。

<commit1><commit2>替换为任何标记名称,分支(本地或远程)或提交的直接sha1哈希(这称为 commit-ish

要获得真正的时髦,您可以根据需要指定树形或灰色哈希。为样本做一些完全愚蠢的事情:

$ git ls-tree HEAD^ | grep blob | sort -R | head -2
100644 blob 27785581e788049ac805fab1d75744dd7379735d    .gitignore
100644 blob 2821a5271ffd8e6b11bb26b8571f57e88ab81f38    TESTING

$ git diff --stat 2821a5271ffd8e6b11bb26b8571f57e88ab81f38 aa96765714a3058068c4425d801fab4b64e26066
 ...f38 => aa96765714a3058068c4425d801fab4b64e26066 |  155 +++++++++++++++++---
 1 files changed, 135 insertions(+), 20 deletions(-)

现在你通常不会这样做,除非你在repo中有多个版本的'same'文件(如果你问我,那就是iffy)。

答案 1 :(得分:15)

git diff

将显示未提交文件的待修改更改

关于此命令的

Review the docs,可以通过多种方式使用它来查看文件之间的差异

答案 2 :(得分:1)

您的问题非常有用,但我认为您正在寻找:

git diff

http://www.kernel.org/pub/software/scm/git/docs/git-diff.html