git术语解释staging,index,cache
这篇讲的是Git里三个让人头疼的术语:staging、index和cache。作者从自己的困惑出发——为什么《Pro Git》里叫staging area,`git-reset`的文档里叫index,而`git-rm`的参数却是`-cached`?这三个词到底是不是一回事? 文章追溯了问题的根源,发现这其实是Linus Torvalds当年的“一念之差”。在开发Git初期,为了管理Linux内核的补丁,他设计了一个“目录缓存”来保存完整的目录树快照。这个缓存的内容结构,在源码里被存储在一个叫`index`的文件中。因此,在Git的底层实现(源码)里,操作这个缓冲区的变量都带着“cache”前缀;而“index”这个名字则因为它作为文件直观地出现在了`.git`目录里。 随着时间推移,普通用户更多通过文档而非源码接触Git,“index”成为了更通用的称呼。而“cache”一词则逐渐退居幕后,仅在讨论内部实现时使用,其过去分词“cached”则作为一个形容词保留下来,用于描述“已通过`git add`放入暂存区”的状态。通过引用git核心维护者Junio C Hamano的解释,文章理清了这三个术语的历史脉络和细微差别,帮你理解为什么同一个东西会有这么多名字。