Git暂存区

来源:互联网 发布:java调用odata 编辑:程序博客网 时间:2024/05/29 09:30

在Git里想要加入到Git版本库里就必须先用git add命令把工作区(working directory)里的目录加入到暂存区里。然后在 git commit 把文件永久提交到本库中(repository)。工作区目录下的.git/index文件就是暂存区,

tips:可以使用 git ls-files -s 查看暂存区的文件
tips:可以使用 git commit -a 跨过暂存区提交,但是不推荐!

这里写图片描述

上图中使用git add 把工作区的目录添加到.git/index文件里,工作区里的目录和.git/index 目录相对应,而.git/index里面指存储着每一个文件的索引(这个索引是一个40位的SHA-1 校验和,前两位表示在.git/objects 下面的子目录名,后38位是文件的名称),时间戳,文件长度等信息。文件具体的内容存储在.git/objects 文件下(内容是二进制的)。

图中使用git commit 之后会生成一个commit对象,然后当前分支(图中的是master分支)会指向这个commit对象(指向的是这个commit的SHA-1校验和)。而图中的HEAD则是负责分支的指向,也就是说HEAD现在指向的分支就是你所处的分支。

tips:工作区下面的.git/refs/heads/目录里面的文件就是你整个仓库的分支(一个分支对应一个文件)。 文件的内容就是分支所指向的commit对象的SHA-1校验和。而.git/HEAD文件里面的内容就是你当前所处在分支所对应文件的路径!

参考

《Pro Git》
《Git权威指南》


如此文章有不对地方请多多指正!