同一文件的暂存版本和未暂存版本之间的差异,使用 difftool

Differences between the staged and unstaged versions of the same file, using difftool

有没有办法查看同一文件的 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 允许我指定我感兴趣的文件。

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

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

这可能看起来并不明显,因为我们通常使用 git diff 查看工作区中的变化与签入的内容。但是,从技术上讲,git diff 显示工作区与索引,如果您没有t 添加了对索引的更改,然后索引与您签出的内容匹配。

  • 查看工作区与存储库:git diff HEAD
  • 查看索引与存储库:git diff --cached(也可以使用 --staged)
  • 查看工作区与索引:git diff