【发布时间】:2012-03-23 22:06:36
【问题描述】:
我已更改 git 存储库中的多个文件,但尚未提交。
我可以通过调用git status 来获取更改列表。但是,除了文件名之外,我如何获得我已更改的 lines 或 content 的列表?
我最初考虑使用git diff,但它似乎只对比较已经提交的更改有用。
通常我只做meld .,但在这种情况下,我通过 ssh 连接到外部服务器。
【问题讨论】:
我已更改 git 存储库中的多个文件,但尚未提交。
我可以通过调用git status 来获取更改列表。但是,除了文件名之外,我如何获得我已更改的 lines 或 content 的列表?
我最初考虑使用git diff,但它似乎只对比较已经提交的更改有用。
通常我只做meld .,但在这种情况下,我通过 ssh 连接到外部服务器。
【问题讨论】:
我在这种情况下使用的是:
git diff HEAD *
这将显示自上次提交以来的更改。虽然它以某种方式工作得更快
git diff .
或
git diff
要查看以前 git added 文件的更改,请使用 staged 标志:
git diff --staged
【讨论】:
git diff 默认显示您的工作目录和索引(暂存区用于下一次提交)之间的差异。
如果您已经将更改添加(暂存)到暂存区,git diff --staged 会完成这项工作。 暂存区是git commit构成下一次提交的数据。
P。 S. Git 初学者的好读物(IMO):
【讨论】:
man git-diff 说--staged is a synonym of --cached
git diff 的默认行为是计算工作目录和索引之间的差异,而不是HEAD