【发布时间】:2015-06-01 21:12:29
【问题描述】:
我们可以看到存储库和工作目录之间的区别:
git diff
我们可以看到 repository 和 staging index 之间的区别:
git diff --staged
但是我们如何看到工作目录和暂存索引之间的区别?
【问题讨论】:
我们可以看到存储库和工作目录之间的区别:
git diff
我们可以看到 repository 和 staging index 之间的区别:
git diff --staged
但是我们如何看到工作目录和暂存索引之间的区别?
【问题讨论】:
实际上,git diff 位于索引和工作树之间。碰巧的是,在您对索引(使用git add)进行分阶段更改之前,其内容将与HEAD 提交相同。
git diff HEAD 位于 repo 和工作树之间。
【讨论】:
git diff 的目标默认是显示尚未跟踪的内容(添加到索引或提交)。默认情况下不再显示您对索引的内容,因为您已经对其进行了审核并决定将其作为下一次提交的一部分。
受@VonC 接受的答案启发,您也可以写成:
代替git diff HEAD
git difftool --dir-diff --no-prompt HEAD
这将打开一个目录差异,显示您的工作树和 repo 之间的差异。从那里可以很容易地查看对单个文件的更改(例如,使用 Beyond Compare 之类的工具及其选项卡式 UI 时)。
【讨论】: