为什么" git index"有这么多名字?

时间:2016-03-18 14:31:53

标签: git git-index git-stage

在阅读如何使用Git时,我发现git index有许多不同的名称。

他们是:

  • directory cache
  • current directory cache
  • staging files
  • staging area

为什么有这么多选项可以说明一件事?

我应该如何命名,以免混淆我不知道其背景的未来对话者?

3 个答案:

答案 0 :(得分:3)

我同意@Harmelodic ......术语“临时区域”可能是最常用和直接的。

例如,使用git-add命令时,您可以说您正在“暂存”内容。

Git开发中早期使用了术语index,但它已被更改。

This是一个很好的历史主题。

Snippits:

  

注意文件注册内容的命令   比工作树中的副本使用选项名称“--cached”。这个   主要是出于历史原因---早期,这并不明显   使索引与工作树不匹配将是有用的。

...

  

“cache”是一个旧名称(并且仍在使用中建立了名称   代码)用于索引...缓存表示“仅查看记录的内容   在索引“。

...

  

最初,说“当前工作树中的内容是什么的方式   这条路是我想要在下一次提交中得到的“是   “更新索引”。 “我想在下一次提交中拥有的”是“   索引“,操作是关于”更新“”我想要的   有......“,所以这个命令的名字很有意义。   “更新索引”有一个安全阀,以防止不小心的调用   “update-index *”添加工作树中的所有残骸(那里   不是瓷器和管道中的任何.gitignore机制)   默认情况下仅影响索引中已有的路径。   你需要说“update-index --add”来包含不是的路径   在索引中。

     

更加用户友好的瓷器“git add”后来被实施   术语“update-index --add”,但最初是添加新的   路径;更新内容仍然通过“更新索引”完成   接口

...

  

简而言之,“舞台”是一个不久之后的同义词

答案 1 :(得分:2)

根据我的经验,最常用的术语是Staging Area

<强>证据:

  • 执行Staged命令时,Git系统中的文件和文件夹称为Unstagedgit
  • 从我观察到的情况来看:大多数开发人员在首次使用Git时只阅读Getting Started - Git Basics文档。本文档将其称为Staging Area
  • 作为一个与Git一起工作的人,经常被那些经常工作的人所包围,我遇到的大多数开发人员都将其称为Staging Area

答案 2 :(得分:1)

在 Git 2.30.1(2021 年第一季度)中,关于基于“cache”的“索引”同义词的文档现在更加清晰:它们已过时并从上述文档中清除。

请参阅 commit b356d23Utku Gultopu (ugultopu)(2021 年 1 月 8 日)。
(于 2021 年 1 月 15 日在 Junio C Hamano -- gitster --commit eecc5f0 合并)

<块引用>

doc:从手册页中删除“目录缓存”

签字人:Utku Gultopu

<块引用>

“目录缓存”(或“目录缓存索引”、“缓存”)是已被“索引”取代的过时术语。
将它们保留在文档中可能会引起混淆。
此提交将它们替换为手册页上的当前术语“索引”。

git ls-files 现在包含在其 man page 中:

<块引用>

这将索引中的文件列表与实际工作合并 目录列表,并显示两者的不同组合。

git update-index 现在包含在其 man page 中:

<块引用>

修改索引。
提到的每个文件都会更新到索引中 清除任何“未合并”或“需要更新”状态。