修改该文件时,git中保存了多少个文件版本?

时间:2015-03-31 21:47:21

标签: git git-index

所以我正在阅读Version Control with Git, 2nd Edition,我偶然发现了这一段(第51页,第34节;使用git add"

  

您的存储库中的大多数日常更改都可能是简单的编辑。后   任何编辑,在提交更改之前,运行git add以更新索引   您文件的绝对最新版本。 如果你不这样做,你会有两个不同的   文件的版本:一个在对象库中捕获并从索引引用,和   另一个在你的工作目录中。

令我困惑的是粗体句。 所以,让我说相反,我改变一个文件,然后在其上运行git add,现在文件被暂存。好吧,在我看来,现在我又有两个不同版本的文件:一个在对象库中捕获,另一个在我的工作目录中并引用索引。不同之处仅在于索引现在引用工作目录中的文件而不是repo中的文件。

我错过了一些作者想要强调的见解吗?该文件中可以存在多少个不同版本的文件" git"? " git"也不清楚,但我想这意味着工作目录+对象存储+索引。

2 个答案:

答案 0 :(得分:1)

如果您编辑文件并且不添加它,git将有2个版本,因为它不在对象库中管理。添加之后,您在本地使用的版本现在是来自git对象库

的版本

答案 1 :(得分:1)

传达的关键概念是您已经理解的:必须git add步骤以防止工作树和索引彼此不同。

"两个不同版本"显然不是指只有两个版本可以存在;它强调工作树中的内容不包含在索引中,git新手的概念经常无法掌握。