Git Index

17 Mar 2025 | 阅读 2 分钟

Git 索引是工作目录和存储库之间的暂存区域。它用于构建一组您想要一起提交的更改。要更好地理解 Git 索引,首先要理解工作目录和存储库。

Git Index

在 Git 中,文件更改可以存在于三个地方,它们是工作目录、暂存区和存储库。为了更好地理解 Git 索引,让我们首先快速了解一下这些地方。

工作目录

当您在您的项目上工作并进行一些更改时,您正在处理您项目的工作目录。此项目目录在您计算机的文件系统中可用。您所做的所有更改都将保留在工作目录中,直到您将它们添加到暂存区。

暂存区

暂存区可以被描述为您的下一次提交的预览。当您创建一个 git commit 时,Git 会将暂存区中的更改作为新的提交。您可以从暂存区添加和删除更改。暂存区可以被认为是一个真正的区域,git 在其中存储更改。

尽管 Git 没有专用的暂存目录来存储代表文件更改的一些对象(blobs)。它使用一个名为 index 的文件来代替。

存储库

在 Git 中,存储库就像一个数据结构,Git 用它来存储一组文件和目录的元数据。它包含文件的集合以及对这些文件所做的更改的历史记录。Git 中的存储库被认为是您的项目文件夹。一个存储库拥有所有与项目相关的数据。不同的项目有不同的存储库。

您可以使用 git status 命令来检查索引中的内容。git status 命令允许您查看哪些文件已暂存、已修改但尚未暂存以及完全未跟踪。暂存文件意味着它当前位于索引中。请参见下面的示例。

语法

输出

Git Index

在给定的输出中,status 命令显示了索引。

正如我们之前提到的,索引是一个文件,而不是一个目录,所以 Git 没有将对象存储到其中。相反,它存储了有关我们存储库中每个文件的信息。此信息可以是

  • mtime: 这是上次更新的时间。
  • file: 这是文件的名称。
  • Wdir: 工作目录中的文件版本。
  • Stage: 索引中的文件版本。
  • Repo: 存储库中的文件版本。

最后,Git 创建您的工作目录以匹配 HEAD 指向的提交的内容。


下一个主题Git Head