《Pro Git》这本书指出,暂存区只是一个列表或索引,它告诉我们哪些文件会在执行`git commit`命令时被提交,现在“索引”更常被称为“暂存区”。
但如果我们修改已经存在于仓库中的文件`foo.txt`,并使用`git add foo.txt`命令将其加入暂存区,然后再次修改该文件,此时该文件既处于“已暂存”又处于“已修改”的状态(可以通过`git status`命令查看),如果我们继续执行`git commit`命令,则“已暂存”的版本将被提交,而第二次修改不会被包括在内。
那么,“暂存区”如何跟踪第一次修改呢?它只是一个文件列表,怎么可能做到呢?
但如果我们修改已经存在于仓库中的文件`foo.txt`,并使用`git add foo.txt`命令将其加入暂存区,然后再次修改该文件,此时该文件既处于“已暂存”又处于“已修改”的状态(可以通过`git status`命令查看),如果我们继续执行`git commit`命令,则“已暂存”的版本将被提交,而第二次修改不会被包括在内。
那么,“暂存区”如何跟踪第一次修改呢?它只是一个文件列表,怎么可能做到呢?
git add
实际上是将文件添加到索引中,同时git add
也将文件放入暂存区(即在提交之前文件所处的区域)。所以,“索引”和“暂存区”概念是相同的吗?我认为清楚术语和这两个术语之间的差异(如果有的话)非常重要。 - undefined