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

有目标就不怕路远。年轻人.无论你现在身在何方.重要的是你将要向何处去。只有明确的目标才能助你成功。没有目标的航船.任何方向的风对他来说都是逆风。因此,再遥远的旅程,只要有目标.就不怕路远。没有目标,哪来的劲头?一车尔尼雷夫斯基

导读:本篇文章讲解 【GIT】git commit后发生了什么?,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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

  • 新建两个txt文件

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

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

  • git add 其中一个

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

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

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

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

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

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

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

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

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

  • git commit提交到本地仓库

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

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

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

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

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

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

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

SO~这是一个commit对象

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

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

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

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

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

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

SO~这是一个tree对象

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

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

不知道大家有没有发现:

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

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

总结

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/135445.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!