曹阳的博客 仅用于学习和分享

.git文件夹详解

2019-10-17

.git文件夹详解

git

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

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

git文件夹.png

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

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

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

HEAD

(refs:heads、remote)

logs.png

objects:存放所有的git对象

objects.png

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

objects1.png

objects2.png

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

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

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

config:git仓库的配置文件

config.png

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

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

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

ORIG_HEAD:HEAD指针的前一个状态

orig_head.png

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

orig_head1.png

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

packed_refs.png


Similar Posts

Content