Git本地仓库内部基本结构

Git本地仓库(本文不涉及远程仓库)的内部结构简单如下图:这是一个appengine项目,刚从远程仓库中clone出来。这个目录下,除了.git目录外的都算作工作区。.git目录下有很多东西,这里只挑简单的描述。1.objects目录存放的是实际的文件,当git add命令执行的时候,文件已经被存到了objects目录下。.git/objects目录下的对象都有一个40位的id,前两位作为目录名,
摘要由CSDN通过智能技术生成

Git本地仓库(本文不涉及远程仓库)的内部结构简单如下图:


这是一个appengine项目,刚从远程仓库中clone出来。这个目录下,除了.git目录外的都算作工作区。.git目录下有很多东西,这里只挑简单的描述。

1.objects目录存放的是实际的文件,当git add命令执行的时候,文件已经被存到了objects目录下。

.git/objects目录下的对象都有一个40位的id,前两位作为目录名,后38位作为文件名

.git/objects$ ls
00  06  0c  12  18  1f  26  2c  32  38  3e  44

这些对象主要是commit对象和tree对象(目录树)

2.index是一个索引文件。存放的是暂存区的整个目录树的信息,并且为目录树中的每个文件都保存了时间戳和长度。

当git add 将某个文件添加到暂存区的时候,index文件中添加了这个文件的基本信息。

当我们修改了工作区的某个文件(比如用touch config.js修改时间戳信息),这会导致该文件的时间戳发生变化,而index里面存放的仍然是旧的信息。

此时当我们执行git status命令来检查版本库的状况:

a. git status就会用config.js的时间戳和长度和index文件里面保存的config.js的时间戳和长度进行比较。

b. 如果相同,则认为没有改变

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值