Git:索引是什么

时间:2012-10-31 20:39:40

标签: git git-index

enter image description here

从这张图片中,提交是指向根树的指针,根树是指向其他树和blob的指针。但是该指数的正确观点是什么?

问题:

  • 它是一个类似于文件夹结构的树,还是只是blob的平面视图?

  • 如果索引是tree-ish,提交和索引之间有很大差异吗?

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

答案 2 :(得分:1)

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

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

如果要丢弃索引中的一个文件,可以使用 s3.amazonaws.com/<bucket-name>/index.html要做到这一点。