从这张图片中,提交是指向根树的指针,根树是指向其他树和blob的指针。但是该指数的正确观点是什么?
问题:
它是一个类似于文件夹结构的树,还是只是blob的平面视图?
如果索引是tree-ish,提交和索引之间有很大差异吗?
索引看起来更像是完整快照还是差异?
答案 0 :(得分:1)
从概念上讲,索引是一棵树。它存储HEAD的状态,反映了git add
所做的所有更改。提交时,索引只是成为提交中的树。您是否可能会询问索引是如何实际实现的?我猜它确实是一棵树,但我不确定。
答案 1 :(得分:1)
与此问题的答案相同: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
答案 2 :(得分:1)
索引是暂存文件的集合。或者我们可以说所有添加的文件。缓存是索引的过时名称,对我来说更容易理解。
提交后,索引变为HEAD,即当前分支的头部。
如果要丢弃索引中的一个文件,可以使用
s3.amazonaws.com/<bucket-name>/index.html
要做到这一点。