Git 中的暂存区
在本篇文章中,我们将了解 Git 中的暂存区。
Git 是一个版本控制系统,维护对项目目录所做更改的历史记录。 Git 使用提交来跟踪更改。
Git有三个内部管理系统,其中之一就是暂存区。 暂存区就像一个粗略的草稿空间,我们可以在其中添加要在下一次提交中保存的文件版本。
我们使用 git add 命令将文件添加到暂存区。 我们现在将用一个例子来说明这一点。
Git 中的暂存区
Git 用于协作开发环境,以跟踪对项目目录中的文件所做的更改。
Git 具有三个内部管理系统,也称为树:工作目录树、暂存索引树和提交历史树。
这些树是复杂的数据结构,用于管理文件的状态及其在 Git 存储库中的更改。 暂存区,也称为暂存索引树,跟踪工作目录的变化。
命令 git add
用于将文件的版本从您的工作目录复制到暂存区。 git add
命令使用在工作树中找到的当前内容更新索引或暂存区。
暂存区保存工作树内容的快照。 此快照是作为下一次提交内容的快照。
之后,当我们想要将更改提交到 Git 仓库时,我们需要使用 git commit
命令。
git commit
命令使用 git add
命令创建的快照在提交历史树中创建提交。 git commit 命令将更改添加到位于提交历史树中的永久快照。
暂存区是一个复杂的内部缓存机制。 我们可以使用 git ls-files
命令查看暂存区或索引状态。
我们可以在 Git 存储库中运行 git ls-files
命令。
$ git ls-files -s .
100644 bab2a0adb8921f504cb0521bc00b8dde22ee92a4 0 mynotes.txt
我们可以看到 mynotes.txt 文件是暂存区树的一部分。
提供给 git ls-files
命令的 -s 或 --stage 选项显示暂存索引中文件的附加元数据。 元数据是分阶段内容的模式位、对象名称和分阶段编号。
第二个值 bab2a0adb8921f504cb0521bc00b8dde22ee92a4 是一个标准的 Git 对象 SHA-1 哈希值。 它是文件内容的哈希值。
我们可以使用 git add
命令将 mynotes.txt 文件的修改添加到暂存区。
$ git add mynotes.txt
$ git status
On branch main Changes to be committed:
(use "git reset HEAD ..." to unstage)
modified: mynotes.txt
如 git status 命令的输出所示,对文件 mynotes.txt 的修改通过 git add
命令提升到暂存索引。
我们将再次检查 mynotes.txt 文件的暂存区或索引的状态,如下所示。
$ git ls-files -s mynotes.txt
100644 067478ae06e267263ea7ed849ef358f911628668 0 mynotes.txt
我们可以看到 mynotes.txt 文件的对象 SHA 已从 bab2a0adb8921f504cb0521bc00b8dde22ee92a4 更新为 067478ae06e267263ea7ed849ef358f911628668。
至此,我们了解了 Git 中的暂存区树或索引。
相关文章
如何在 Windows 系统中卸载 git
发布时间:2023/04/09 浏览次数:223 分类:Git
-
在这篇简短的文章中,我们将学习如何卸载 Git,以及如何在从个人计算机的目录中卸载 Git 后删除这些文件。
Git 如何重命名本地分支
发布时间:2023/04/09 浏览次数:64 分类:Git
-
大多数情况下,重命名分支机构是由于上述情况。 因此,在本教程中,我们将学习使用下面提到的技术更改本地 Git 分支的名称。
重命名 Git 存储库中的文件和目录
发布时间:2023/04/09 浏览次数:102 分类:Git
-
在本文中,我们将讨论 git 中的重命名过程。 我们使用 Git Rename 来更改工作目录中文件和文件夹的名称。
在 Git 中取消初始化存储库
发布时间:2023/04/09 浏览次数:187 分类:Git
-
本本文介绍如何通过 Git 命令行取消初始化 Git 存储库。git init 命令开发一个新的空置 Git 存储库。 它还用于重新初始化已经存在的 Git 存储库。
Git 仓库名称该如何命名
发布时间:2023/04/09 浏览次数:208 分类:Git
-
使用 Git 时,选择一个简洁且最新的存储库名称是一项艰巨的任务。本教程介绍了如何以独特的方式命名 Git 存储库。
配置 Git 以忽略文件模式更改
发布时间:2023/04/09 浏览次数:67 分类:Git
-
本文讨论配置 Git 以忽略文件更改 chmod 所需的步骤。 如果您更改 Git 正在跟踪的文件的权限,系统将在该文件中注册更改。
在 Git 中暂存已删除的文件
发布时间:2023/04/09 浏览次数:93 分类:Git
-
本文讨论了在 Git 中暂存已删除文件的必要步骤。我们知道 rm 命令可以删除一个文件,而无需将其从工作目录中移除。 那么,我们如何暂存已删除的文件以进行提交呢?
在 Git 中显示冲突文件
发布时间:2023/04/09 浏览次数:139 分类:Git
-
本文讨论在 Git 中列出冲突文件的最简单和最干净的方法。 我们可以使用 git status 命令,但这很麻烦,尤其是当我们有大量不冲突的文件时。