【GIT】git commit后发生了什么?

来我们先捋一遍从新建文件到commit的流程:

  • 新建两个txt文件

    • aqin1012@aqin1012deMacBook-Pro git-test % git add aqin.txt
      aqin1012@aqin1012deMacBook-Pro git-test % git add aqin2.txt

  • git add 其中一个

    • aqin1012@aqin1012deMacBook-Pro git-test % git add aqin.txt

  • ​使用git cat-file -t查看下这个生成对象的类型:

  • git add另一个
    • aqin1012@aqin1012deMacBook-Pro git-test % git add aqin2.txt

  • ​使用git cat-file -t查看下这个生成对象的类型:

​可以看到每add一个文件对应的.git/objects文件夹中就会多出一个blob对象

  • git commit提交到本地仓库

    • aqin1012@aqin1012deMacBook-Pro git-test % git commit -m "first test"

commit后,.git/objects文件夹中就会多出两个对象,我们来看看这两个对象分别是啥么~~

  • 先查看上面那个99开头的文件

    • git cat-file -t 查看对象类型

      • aqin1012@aqin1012deMacBook-Pro git-test % git cat-file -t 99ce05

SO~这是一个commit对象

  • git cat-file -p 查看对象内容

    • aqin1012@aqin1012deMacBook-Pro git-test % git cat-file -p 99ce05

这个commit对象中包含了一个tree对象、作者信息,以及提交者信息

  • 同样我们再看另一个新增的对象

SO~这是一个tree对象

​这个tree对象中包含了2个blob对象(就是我们刚才add的那两个)

不知道大家有没有发现:

新增的commit 对象中就包含了新增的那 tree 对象

总结

  • 一次commit会产生一个commit对象和tree对象
  • 一个commit对象中包含作者信息/提交者信息和一个tree对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AQin1012

求小鱼干呢~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值