猿问

如何显示已进行的更改?

我进行了一些更改以进行确认;如何查看下一次提交暂存的所有文件的差异?我知道git status,但我想查看实际的差异-不仅是暂存文件的名称。


我看到git-diff(1)手册页说


git diff [--options] [-] […]


该表格用于查看您相对于索引(下一次提交的临时区域)所做的更改。换句话说,区别就是您可以告诉git进一步添加到索引中,但是您仍然没有。您可以使用git-add(1)进行这些更改。


不幸的是,我对此不太理解。必须有一些方便的单行代码,我可以为其创建别名,对吗?


皈依舞
浏览 364回答 3
3回答

慕码人8056858

应该只是:git diff --cached--cached表示相对于当前缓存/索引的更改(即分段更改)HEAD。--staged是的同义词--cached。--staged并--cached没有指出HEAD,只是关于差异HEAD。如果您使用git add --patch(或git add -p)选择要提交的内容,--staged则将返回已暂存的内容。

qq_花开花谢_0

一个简单的图形使这一点更加清晰:简单的Git差异git diff显示工作目录和索引之间的更改。这显示了已更改但未上演提交的内容。git diff-缓存显示索引和HEAD(这是该分支上的最后一次提交)之间的更改。这显示了已添加到索引中并已暂存的内容。git diff头显示工作目录和HEAD之间的所有更改(包括索引中的更改)。这显示了自上次提交以来的所有更改,无论它们是否已上演提交。另外:365Git上有更多详细信息。

慕的地8271018

如果您对可视并排视图感兴趣,可以使用“ 漫反射视觉差异”工具。如果已执行部分但不是全部更改,它甚至将显示三个窗格。在发生冲突的情况下,甚至会有四个窗格。带有阶段性和非阶段性编辑的diffuse屏幕截图调用diffuse -m在您的Git工作副本中。如果您问我,十年来最好的视觉效果就与众不同。此外,它并非特定于Git:它可与大量其他VCS(包括SVN,Mercurial,Bazaar,...)互操作。
随时随地看视频慕课网APP
我要回答