106 我已经更改了git存储库中的几个文件,但尚未提交它们。 我可以通过调用来获取更改列表git status。但是,除了文件名之外,如何获得行或更改内容的清单? 我最初考虑使用git diff,但它似乎仅对比较已提交的更改有用。 通常我只是这样做meld .,但是在这种情况下,我是通过ssh连接到外部服务器的。 git ssh diff meld — 奇基托 source
153 git diff默认情况下,显示工作目录和索引(下一次提交的暂存区)之间的差异。 如果您已经添加(上演)更改到临时区域,git diff --staged做这项工作。 暂存区是由构成下一次提交的数据git commit。 PS对Git初学者的良好阅读(IMO): https://git-scm.com/book/en/v2(大多数章节;它解释了Git背后的模型并回答了大多数典型问题) 然后立即http://gitready.com/(使用技巧)。 — 米沙·阿列菲耶夫(Mischa Arefiev) source 暂存不仅适用于尚未添加的文件吗?以为您必须使用缓存的标志。 — 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 — 艾留克斯 source