git-提交前当前更改的差异


106

我已经更改了git存储库中的几个文件,但尚未提交它们。

我可以通过调用来获取更改列表git status。但是,除了文件名之外,如何获得或更改内容的清单?

我最初考虑使用git diff,但它似乎仅对比较已提交的更改有用。

通常我只是这样做meld .,但是在这种情况下,我是通过ssh连接到外部服务器的。

Answers:


153

git diff默认情况下,显示工作目录索引(下一次提交的暂存区)之间的差异。

如果您已经添加(上演)更改到临时区域git diff --staged做这项工作。 暂存区是由构成下一次提交的数据git commit

PS对Git初学者的良好阅读(IMO):


暂存不仅适用于尚未添加的文件吗?以为您必须使用缓存的标志。
pbond 2012年

4
@peterbond man git-diff--staged is a synonym of --cached
Mischa Arefiev 2012年

2
@peterbond从技术上讲,暂存是指已添加到暂存区的暂存区。我已经在编辑中阐明了这一点。
Mischa Arefiev

1
@Mischa 文档说默认行为git diff是计算工作目录和索引之间的差,而不是HEAD
Axel 2012年

我没有想到没有参数地调用git diff。谢谢!
kikito 2012年

10

我在这种情况下使用的是:

git diff HEAD *

这将显示自上次提交以来的更改。尽管以某种方式它可以更快地工作

git diff .

要么

git diff

要查看以前git add编辑的文件中的更改,请使用staged标志:

git diff --staged
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.