同时展示上演和演出在git diff工作树?

时间:2012-10-24 20:46:24

标签: git diff

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

3 个答案:

答案 0 :(得分:58)

如果你的意思是工作树和你的HEAD提交之间的变化(即同时进行了分阶段和非分阶段的变更),这只需要完成:

git diff HEAD

答案 1 :(得分:22)

  

有没有办法让git diff一次性看到所有内容?

有Git 2.4.0+(2015年4月)。

请参阅commit 4055500中的Michael J Gruber mjg

  

commit / status:使用-v -v(或-vv

显示index-worktree差异      长格式的

git commitgit status显示HEAD之间的差异   给定-v时的索引。这允许预览提交。

     

他们还列出了带有非分段更改的跟踪文件,但没有差异。

     

介绍' -v -v' (或-vv),显示索引和。之间的差异   worktree 另外HEAD索引差异。这允许查看提交中可能缺少的未分级更改。

     

在' -v -v' (或-vv),其他标题行

Changes to be committed:
     

Changes not staged for commit:
     在差异之前插入

,它们等于状态部分中的那些;后者之前是50 * -,以使其更加突出。

在OP的情况下,一个简单的 git status -v -v (或git status -vv)会显示分阶段的非分页差异。< / p>

答案 2 :(得分:4)

diffuse视觉差异工具可以做到这一点:如果某些但不是所有的更改都被暂存,它将显示三个窗格。在冲突的情况下,甚至会有四个窗格。

Screenshot of diffuse with staged and unstaged edits

调用它
diffuse -m

在你的Git工作副本中。

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