我刚开始阅读 S. Chacon 和 B. Straub 的书籍《Pro Git》。在第二章中,在“记录更改到仓库”一节中,你会发现以下说明:
请记住,工作目录中的每个文件都可以处于跟踪或未跟踪状态。已跟踪的文件是上次快照中的文件;它们可以是未修改的、修改的或暂存的。
由此,我得出的印象是,已跟踪文件的集合可能比已暂存文件的集合更大。但同时,当我查看 this link 时,我看到下面的语句似乎与书中所写相矛盾:
要告诉 Git 开始跟踪对 octocat.txt 进行的更改,我们首先需要使用 git add 将其添加到暂存区。
这似乎意味着每个已暂存的文件都是已跟踪的文件,反之亦然。
我错过了什么?
请记住,工作目录中的每个文件都可以处于跟踪或未跟踪状态。已跟踪的文件是上次快照中的文件;它们可以是未修改的、修改的或暂存的。
由此,我得出的印象是,已跟踪文件的集合可能比已暂存文件的集合更大。但同时,当我查看 this link 时,我看到下面的语句似乎与书中所写相矛盾:
要告诉 Git 开始跟踪对 octocat.txt 进行的更改,我们首先需要使用 git add 将其添加到暂存区。
这似乎意味着每个已暂存的文件都是已跟踪的文件,反之亦然。
我错过了什么?
git init
时会发生特殊的事情吗?我有两个文件,一个是未跟踪的(main.cpp),另一个是已跟踪的(myfile.cpp)。两个文件都包含文本。两个文件都从未被添加到git。对myfile.cpp运行git diff
显示所有我的代码都是新的(即它正在与一个空文件/dev/null进行比较)。但对main.cpp运行git diff
则没有任何输出,因为它是一个未跟踪的文件。为什么myfile.cpp变成了git跟踪的文件,而main.cpp没有呢?我认为main.cpp在git init
时已经存在,所以我只能假设这对所有这些都有一定影响。有什么想法吗? - undefined