.git 文件夹详解

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

.git 文件夹详解_第1张图片

  • hooks:这个目录存放一些shell脚本,可以设置特定的git命令后触发相应的脚本;在搭建gitweb系统或其他git托管系统会经常用到hook script.

  • info:包含仓库的一些信息

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

    ​ 比如有个HEAD文件,里面是这样子:

    .git 文件夹详解_第2张图片

  • objects:该目录存放所有的Git对象,对象的SHA1哈希值的前两位是文件夹名称,后38位作为对象文件名。

.git 文件夹详解_第3张图片

  • refs:具体的引用,Reference Specification,这个目录一般包括三个子文件夹,heads、remotes和tags,比如,heads中的master文件标识了项目中的master分支指向的当前commit,其他类似。

  • COMMIT_EDITMSG:保存最新的commit message,Git系统不会用到这个文件,只是给用户一个参考。

  • config:这个是Git仓库的配置文件。

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

  • index:这个文件就是暂存区(stage),是一个二进制文件。

  • HEAD:这个文件包含了一个分支(branch)的引用,通过这个文件Git可以得到下一次commit的parent。引用可以理解为指针,哪儿都可以指,但是不能指向没有的东西哦。

    因为git是根据哈希值索引的,计算机内部这样处理,为了方便我们使用,所以出现了引用的概念,Git系统中的分支名、远程分支名、tag等都是指向某个commit的引用。比如master分支,origin/master远程分支,命名为V1.0的tag等都是引用,它们通过该保存某个commit的SHA1哈希值指向某个commit的点。

  • ORIG_HEAD:HEAD指针的前一个状态

你可能感兴趣的:(git教程)