索引是临时区域吗?
来自git docs:
git diff
让我们停一分钟,看看如何使用git diff命令 向您展示工作中文件的版本之间的区别 目录,索引和最近提交。 git diff的3种主要类型 您可能会使用的命令是:
git diff:显示工作目录和。之间的差异 指数。
git diff -cached:显示索引和。之间的差异 最近的承诺 git diff HEAD:显示你的差异 工作目录和最近的提交。
我的问题是关于git diff
。问题是我没有提交任何内容或git add
任何内容,当我输入git diff
时,我的工作目录中的更改会显示出来。我的临时区域是空的。当我输入git status
时,我看到两个红色的文件不会被暂存,因为我还没有使用git add
。那么为什么git diff
显示我在工作目录中所做的更改?
答案 0 :(得分:4)
git diff:显示工作目录和索引之间的差异。
工作目录:您当前的代码,甚至是尚未暂存的文件。
索引:你是对的,这是暂存区。
当您执行git diff
时,它会将您当前的代码与暂存区域进行比较,这正是您所描述的行为。
来自git文档:
git diff
此表单用于查看您对索引所做的更改(下一次提交的暂存区域)。换句话说,差异是你可以告诉Git进一步添加到索引,但你仍然没有。您可以使用git-add [1]来暂存这些更改。
因此,我们有三种不同的情况:
1 - 您没有未上演的更改 - > git diff
没有显示任何内容。
2 - 你有一些变化上演,一些没上演 - > git diff
显示您的CWD和临时区域之间的差异。
3 - 舞台区域为空,有些变化 - > git diff
显示CWD和最后一次提交之间的差异。