蒋朋的家

安卓开发路上的点点滴滴

git使用之三——.git文件夹详解

博客: 安卓之家
微博: 追风917
CSDN: 蒋朋的家
简书: 追风917
博客园: 追风917

git使用之一——git的基本使用
git使用之二——.gitignore文件详解
git使用之三——.git文件夹详解
git使用之四——windows下github桌面版的安装
git使用之五——Github上fork项目后与原项目保持同步
git使用之六——github协同工作的Fork+Pull Request
git使用之七——Android Studio下git的正确使用

.git文件夹


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

11

下面我们就来详细介绍下这里面都藏了些什么。

介绍


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

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

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

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

HEAD

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

比如前面log里的HEAD文件里有个哈希值是5426426e3ccc9ab4e3330640862a7b96e28828af

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

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

7 config:这个是GIt仓库的配置文件

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

9 index:这个文件就是我们前面提到的暂存区(stage),是一个二进制文件

10 HEAD:这个文件包含了一个分支(branch)的引用,通过这个文件Git可以得到下一次commit的parent,什么是引用呢,你可以理解为指针,哪儿都可以指,但是不能指向没有的东西哦。详细介绍请看这里:
git使用之一——git的基本使用

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

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

到这里对这个应该有很深的了解了,你自己挨个打开看看,就会更加深入,谢谢。

enjoy!

悦分享,越快乐^_^

欢迎交流,转载请注明出处,谢谢!

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载,谢谢!!! https://blog.csdn.net/u010331406/article/details/49128607
文章标签: git
个人分类: git
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭