.git文件夹详解
git
在git 克隆代码之后,还不能直接使用git,而需要初始化git,它会自动创建git仓库需要的目录。这些文件存在于项目下的.git文件夹下。
.git文件夹是git init后在当前目录生成的一个管理git仓库的文件夹,这里包含所有git操作所需要的东西,如下图:
hooks(钩):存放一些shell脚本
Info:exclude:存放仓库的一些信息
logs:保存所有更新的引用记录
HEAD
(refs:heads、remote)
objects:存放所有的git对象
例如:logs中 9e63549ae26ed3bff8b96adb6498520855d52d可以找到下图
refs:heads:保存当前最新的一次提交的哈希值
COMMIT_EDITMSG:最新提交的一次Commit Message,git系统不会用到,给用户一个参考
description:仓库的描述信息,主要给gitweb等git托管系统使用
config:git仓库的配置文件
index:暂存区(stage),一个二进制文件
FETCH_HEAD: 是一个版本链接,指向着目前已经从远程仓库取下来的分支的末端版本
HEAD:映射到ref引用,能够找到下一次commit的前一次哈希值(看上面logs的图)
ORIG_HEAD:HEAD指针的前一个状态
在logs/HEAD中,最后一条提交记录,当前hash值
packed-refs:当更新一个引用时,git不会packed-refs,而是会在refs/heads下写入一个新文件。当查找一个引用时,git首先在refs目录下查找,如果未找到则到packed-refs文件中去查找。