我如何显示已经上演的变化?

我提出了一些要改变的改变; 我怎样才能看到所有下一次提交的文件的差异? 我知道git的状态,但我希望看到实际的差异 - 不仅仅是上演的文件名称。

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

git diff [--options] [ - ] [...]

这种形式是查看你相对于索引所做的更改(下一次提交的暂存区域)。 换句话说,差异是你可以告诉git进一步添加到索引,但你还没有。 你可以通过使用git-add(1)来完成这些更改。

不幸的是,我无法理解这一点。 必须有一些方便的一行,我可以创建一个别名,对吗?


它应该是:

git diff --cached

--cached缓存意味着显示缓存/索引(即分阶段更改)对当前HEAD更改。 --staged--cached的同义词。

--staged--cached不指向HEAD ,只是与HEAD 。 如果樱桃选择使用git add --patch (或git add -p--staged内容,-- --staged将返回所执行的内容。


一个简单的图形使这个更清晰:

简单的Git差异

git diff

显示工作目录和索引之间的更改。 这显示了已经更改的内容,但未提交提交。

git diff - 缓存

显示索引和HEAD(这是该分支上的最后一个提交)之间的更改。 这显示了已添加到索引并为提交进行的操作。

git diff HEAD

显示工作目录和HEAD(包括索引中的更改)之间的所有更改。 这显示了自上次提交以来所做的所有更改,无论它们是否已提交或未提交。

另外

365Git有更多的细节。


如果您对视觉并排视图感兴趣,则漫反射视觉差异工具可以实现这一点。 如果一些但不是所有的变化都展示出来,它甚至会显示三个窗格。 在冲突的情况下,甚至会有四个窗格。

漫画与分阶段和非分期编辑截图

用它来调用它

diffuse -m

在你的Git工作副本中。

如果你问我,我已经看到了十年来最好的视觉差异。 此外,它并不特定于Git:它可以与其他多种VCS进行互操作,包括SVN,Mercurial,Bazaar ......

另请参见:在git diff中显示staged和working tree?

链接地址: http://www.djcxy.com/p/1445.html

上一篇: How do I show the changes which have been staged?

下一篇: After reverting a file to a previous revision git diff shows no differences?