Git 索引
Git索引是工作目录和代码仓库之间的暂存区。它用于构建一组要一起提交的更改。要更好地理解Git索引,首先要理解工作目录和代码仓库。
Git有三个地方可以存放文件更改,分别是工作目录,暂存区和仓库。为了更好地理解Git索引(index),让我们简要了解一下这些地方。
工作目录
当你在项目上工作并进行一些更改时,你是在处理项目的工作目录。此项目目录在计算机的文件系统上可用。您所做的所有更改将保留在工作目录中,直到将它们添加到暂存区。
暂存区
暂存区可以看作是您下一次提交的预览。当您创建一个git提交时,Git会将暂存区中的更改作为新的提交。您可以向暂存区添加和删除更改。暂存区可以被视为git存储更改的真正区域。
尽管Git没有一个专门的暂存目录来存储表示文件更改(blob)的对象。但是,它使用一个名为index的文件。
仓库
在Git中,仓库类似于Git用于存储一组文件和目录的元数据的数据结构。它包含了文件的集合以及对这些文件所做更改的历史记录。Git中的仓库被认为是项目文件夹。仓库包含了与项目相关的所有数据。不同的项目有不同的仓库。
您可以通过 git status 命令 来检查索引中的内容。git status 命令可以让您查看哪些文件已被暂存,哪些文件已被修改但尚未暂存,以及完全未跟踪的文件。已暂存的文件表示它当前位于索引中。请参考以下示例。
语法:
$ git status
输出:
给定的输出中,状态命令显示了索引。
正如我们之前提到的,索引是一个文件,而不是一个目录,所以Git并没有将对象存储进去。相反,它存储了我们存储库中每个文件的信息。这些信息可能是:
- mtime: 最后更新的时间。
- file: 文件的名称。
- Wdir: 工作目录中文件的版本。
- Stage: 索引中文件的版本。
- Repo: 存储库中文件的版本。
最后,Git将您的工作目录创建为与HEAD指向的提交内容相匹配。