GIT diff HEAD中的奇怪行为

时间:2011-08-21 20:41:27

标签: git diff

我在Windows下并严格在本地使用GIT作为备份系统。

我有整个Eclipse工作区。

在网上搜索,我发现我需要这样做:

Display changes since last commit:
$ git diff HEAD

我试图了解一些maven插件目标正在做什么。所以我承诺所有的改变。然后我运行maven命令。然后我进入项目目录,该目录位于工作空间目录下,然后运行

git diff HEAD

然后显示整个工作区的更改,实际上除了此目录外没有任何更改。如果我将其重定向到文件,该文件是157M大!

但是,如果我上一个目录,回到工作区,并执行相同操作,那么它只显示项目目录中的更改。这就是我所期望的。

所以我的问题是:

1)为什么,如果我进入子目录,它会显示父目录中发生的变化?

2)当真的只有一个变化时,它会在哪里获得157M的变化?

1 个答案:

答案 0 :(得分:1)

在git存储库中的任何地方调用没有路径参数的git diff将显示整个存储库的差异,而不仅仅是当前目录(这与Subversion的行为不同)。

如果您在不同目录中获得git diff HEAD的不同输出,则表示您正在移动到其他存储库(或者您实际上并未运行 exact 相同的命令)。