`git diff`不会显示工作树相对提交中的更改

时间:2016-01-24 18:26:18

标签: git

我发现图像以图形方式显示diff命令的工作。 http://images.abizern.org.s3.amazonaws.com/365git/March10/GitDiffSimple.png

git diff HEAD

显示工作树中相对于HEAD的更改,但是如果我运行此脚本

mkdir test_git
cd test_git
git init
echo 'one_file.txt' >> one_file.txt
git add .
git commit -m "my first commit"
echo 'second_file.txt' >> second_file.txt
git diff HEAD

然后diff不显示seconrd_file.txt的差异。为什么呢?

1 个答案:

答案 0 :(得分:0)

git diff命令提供当前工作目录或当前索引与HEAD之间的相对差异。在上面的示例中,您将创建一个新文件,但尚未将其添加到索引或提交它。就HEAD而言,新文件不存在且未被跟踪,因此没有区别。使用git add second_file.txt将文件暂存到索引中会将新文件引入存储库,并在执行git diff --cached命令时产生差异。

Pro Git - 2.2 Git Basics中免费提供了跟踪变更的过程。