使用difftool在同一文件的分阶段和非分阶段版本之间的差异

时间:2016-12-20 15:10:21

标签: git diff git-diff difftool git-stage

有没有办法查看同一文件的stagedunstaged版本之间的差异?

例如:

Changes to be committed:

    modified:   conf/application.conf

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   conf/application.conf

当我进行更改然后再次修改文件而不进行暂存时,会发生这种情况。

EDIT

git status -vv命令不够好,因为我需要使用diff / difftool命令。这是因为在实践中,太多文件中的更改太多,滚动浏览所有文件并不高效。但是diff / difftool允许我指定我感兴趣的文件。

2 个答案:

答案 0 :(得分:26)

git diff将显示工作区和索引之间的差异。 (索引是暂存文件的位置)

这似乎不太明显,因为我们通常使用git diff来查看工作区中的更改与签入的内容。但是,技术上git diff显示工作区与索引,如果您还没有添加更改索引,然后索引匹配您签出的内容。

  • 查看工作区vs repo:git diff HEAD
  • 查看index vs repos:git diff --cached(也可以使用--staged)
  • 查看工作区与索引:git diff

答案 1 :(得分:1)

如果您运行命令git status -vv,您将看到文件的文本更改。请参阅doc