.git文件夹详解

在git 克隆代码之后,还不能直接使用git,而需要初始化git,它会自动创建git仓库需要的目录。这些文件存在于项目下的.git文件夹下。

.git文件夹是git init后在当前目录生成的一个管理git仓库的文件夹,这里包含所有git操作所需要的东西,如下图:

Git文件夹

hooks(钩):存放一些shell脚本

Info:exclude:存放仓库的一些信息

logs:保存所有更新的引用记录

HEAD

(refs:heads、remote)

logs

objects:存放所有的git对象

objects

例如:logs中 9e63549ae26ed3bff8b96adb6498520855d52d可以找到下图

objects1

objects2

refs:heads:保存当前最新的一次提交的哈希值

COMMIT_EDITMSG:最新提交的一次Commit Message,git系统不会用到,给用户一个参考

description:仓库的描述信息,主要给gitweb等git托管系统使用

config:git仓库的配置文件

config

index:暂存区(stage),一个二进制文件

FETCH_HEAD: 是一个版本链接,指向着目前已经从远程仓库取下来的分支的末端版本

HEAD:映射到ref引用,能够找到下一次commit的前一次哈希值(看上面logs的图)

ORIG_HEAD:HEAD指针的前一个状态

orig_head

在logs/HEAD中,最后一条提交记录,当前hash值

orig_head1

packed-refs:当更新一个引用时,git不会packed-refs,而是会在refs/heads下写入一个新文件。当查找一个引用时,git首先在refs目录下查找,如果未找到则到packed-refs文件中去查找。

packed_refs

发布了13 篇原创文章 · 获赞 3 · 访问量 303

猜你喜欢

转载自blog.csdn.net/weixin_45158297/article/details/103133336
今日推荐