Renhua's Blog

Stay Hungry. Stay Foolish

0%

Git-add命令解析

前文有了解到,git add fileName 命令会将指定文件加入到暂存区,那么 git add 背后都做了哪些操作,下面详细介绍下。

1. 保存已修改的对象

在执行 git add 操作后,Git 首先会执行 git hash-object 命令把当前修改的文件压缩成二进制文件,我们称为一个 Git 对象。同时还会计算当前文件内容的哈希值,哈希值一共 40 位,前两位作为文件夹的名字,后两位作为这个 Git 对象的名字,存入 .git/objects 目录下。这个新生成的 Git 对象就是前文 《Git-版本库目录结构解析》 提到过的 blob 类型的文件。

2. 将修改的信息添加到暂存区

文件保存完后,还需要告诉 Git 哪些文件发生了改动,这些变动的文件会统一存放在暂存区中。

Git 通过执行 git update-index 命令,将修改的文件名,对应 Git 对象名,以及文件权限等信息写入到暂存区。

文件加入到暂存区后,就可以通过 git status 命令查看到当前修改的文件了。

其它命令

git add . :对所有已修改的文件都执行一遍 git add 操作。