4

在此处输入图像描述

从这张图片中,提交是指向根树的指针,根树是指向其他树和 blob 的指针。但是什么是正确的索引视图?

问题:

  • 它是具有文件夹结构的类似树状结构还是只是 blob 的平面视图?

  • 如果索引是树状的,那么提交和索引之间有很大区别吗?

  • 索引看起来更像是完整快照还是差异?

4

3 回答 3

2

从概念上讲,索引是一棵树。它存储了 HEAD 的状态,反映了所有的变化git add。提交时,索引只是成为提交中的树。您可能会问索引实际上是如何实现的?我猜它确实是一棵树,但我不确定。

于 2012-10-31T20:42:58.177 回答
2

与此问题相同的答案:Decoding Git index file using C#

此处描述了 Git 索引文件格式:http: //git.kernel.org/?p=git​​/git.git;a=blob;f=Documentation/technical/index-format.txt;hb=HEAD

于 2012-11-01T16:54:00.043 回答
1

索引是暂存文件的集合。或者我们可以说所有添加的文件。缓存是索引的过时名称,对我来说更容易理解。

提交后,索引变为 HEAD,即当前分支的头部。

如果要丢弃索引中的一个文件,可以使用 $git reset HEAD <filename>它来完成。

于 2016-12-17T20:07:19.427 回答