54

如果我运行,git diff我会看到我的工作树中的更改,如果我运行git diff --staged(或者--cached),那么我会看到暂存的更改(w/ git add),但是有没有办法git diff一次性查看所有内容?

4

3 回答 3

80

如果您的意思是工作树和您的 HEAD 提交之间的更改(即同时进行分阶段和非分阶段更改),只需执行以下操作:

git diff HEAD
于 2012-10-24T20:48:15.443 回答
34

有没有办法使用 git diff 一次性查看所有内容?

有,使用 Git 2.4.0+(2015 年 4 月)。

请参阅Michael J Gruber提交 4055500mjg

commit/ :用(或)status显示索引工作树差异-v -v-vv

git commitgit status以长格式显示 HEAD 和给定索引之间的差异-v。这允许预览要进行的提交。

他们还列出了具有未暂存更改但没有差异的跟踪文件。

引入 ' -v -v' (或),它除了显示索引差异外,还显示-vv了索引和工作树之间的差异。这允许审查提交中可能缺少的未暂存更改。HEAD

在 ' -v -v' (或-vv)的情况下,附加标题行

Changes to be committed:

Changes not staged for commit:

插入到差异之前,与状态部分中的差异相同;后者前面加上 50*-以使其更加突出。

在 OP 的情况下,一个简单的git status -v -v(or git status -vv) 将显示分阶段非分阶段的差异。

于 2015-03-18T07:30:06.450 回答
4

漫反射视觉差异工具可以做到这一点:如果部分但不是全部更改已上演,它将显示三个窗格。在发生冲突的情况下,甚至会有四个窗格。

带有分阶段和非分阶段编辑的漫反射屏幕截图

调用它

diffuse -m

在你的 Git 工作副本中。

如果你问我,十年来我见过的最好的视觉效果。

于 2012-10-24T20:47:51.340 回答