git元数据

三分钟教你学Git只是教我们会用Git了,可是内部的一些实现原理如果我们也知道一些的话会使我们使用起来更加顺手。这个系列就是在你用了Git一段时间之后,并想继续到Git的内部看一下究竟而准备的。


Git仓库是根据什么知道仓库的元信息呢?我们首先git init,git会在目录下创建一个.git的隐藏目录,这个目录里存储了关于这个仓库的所有元数据。Git对象就存在其下的objects文件夹内。所以有必要看一下这里边都还存储了什么东西:

首先.git目录下有五个文件夹和三个文件:

1 branches 

2 hooks

里边包含所有的钩子函数。允许你自定义一些Git预先配置好的钩子,可以做一些自己自定义的事情,比如当有改动的时候触发hudson进行构建,commit的时候加上一些每个commit都需要有的信息,比如code review编号之类的。

- applypatch-msg.sample

- post-update.sample     

- pre-commit.sample          

- pre-push.sample    

- update.sample

- commit-msg.sample      

- pre-applypatch.sample  

- prepare-commit-msg.sample  

- pre-rebase.sample

3 info

这个目录里边存储了exclude文件,可以使Git忽略掉一些内容,是对.gitignore功能的补充。

4 objects 

这个目录存储了上节我们提到的四种Git对象。

5 refs

- heads 本地哪个branch的哪个commit。

- remotes

 -- origin 存储当前head的远程分支指向,这些信息在本地是只读的,在本地可以checkout出来这些文件,但是不像heads会进行更新操作。

三个文件

6 config

这个文件也是相当的重要,存储了关于本地仓库配置信息,各个branch的一些信息等。

7 description


8 HEAD

存储当前head的实际指向,比如refs/heads/master


另外还有一个重要的文件index,存储stage的信息。


那么有一个问题是:Git如何定位版本库?

git会在当前目录中依次向上递归查找.git目录,直到找到,那么找到的.git目录就是工作区对应的版本库,.git所在的目录就是工作区的根目录。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值