美文网首页
git 仓库内部结构

git 仓库内部结构

作者: fck_13 | 来源:发表于2019-12-07 20:01 被阅读0次

先上一张自己做的图:


git repo structure.png

(1)branch(分支)
分支是一个通过commit中的parent指针构建起来的单向链表。branch是由很多commit组织起来的。一个repo中有很多branch。
新建repo后都会有一个默认的分支,通常是master分支。分支的建立是基于当前的分支,新建的分支以当前分支的最新commit为parent commit。当一个分支合并到另一个分支的时候,会产生一个新的commit。新产生的commit会有两个parent commit,也就是说,一个commit会有多余一个的parent commit。如下图中的棕色轮廓的实心圆点。


branches.png

(2)commit(提交)
一个commit是当前repo的一个快照,每个commit都包含了提交这个时刻的所有的文件的状态。


commit.png
commit中比较重要的属性有:
  • tree指针:指向一个tree对象,tree是一种文件目录结构。下面会详细讲。
  • parent 指针:指向上一个commit节点。
  • author :该commit的作者信息。
  • committer : 该commit的提交者。
    (3)tree和blob(tree对象)


    tree.png

    我们可以把tree看作是一个目录结构。一个tree是一个文件夹,文件夹里面有文件夹和文件。blob这这里代表文件。
    tree 是一个表格结构,每一行都代表一个tree对象或者blob对象,还有该对象的hash值即名字。tree的话就是文件夹名字,blob的话就是文件名字。通常以hash值为文件名的文件中只存储了文件的内容,而文件的名字要靠tree对象获取。

相关文章

  • git 仓库内部结构

    先上一张自己做的图: (1)branch(分支)分支是一个通过commit中的parent指针构建起来的单向链表。...

  • git迁移

    git clone --bare 原库/仓库.gitcd /仓库git push --mirror 新库/仓库.git

  • git学习记录

    git init创建git仓库 git add添加文件到仓库 git commit -m "xxx"提交文件到仓库...

  • 从远程分支拉取代码

    git init 初始化git仓库 git remote add origin 仓库地址 链接远程仓库 git f...

  • git 仓库

    git 初始化 初始化git init git 新建 git 仓库,关联远程仓库 关联远程仓库git remote...

  • git 命令行操作笔记

    git中的选项解释 创建本地git仓库 提交代码到git仓库 本地git仓库添加到远程仓库中 克隆远程仓库到本地 ...

  • Git远程配置

    Git远程查看  Git查看远程仓库 Git远程参数 Git配置远程仓库

  • 简易的命令行入门教程

    Git 全局设置: 创建 git 仓库: 已有仓库?

  • 简易的命令行入门教程:

    Git 全局设置: 创建 git 仓库: 已有仓库?

  • Gitee

    Git 全局设置: 创建 git 仓库: 已有仓库?

网友评论

      本文标题:git 仓库内部结构

      本文链接:https://www.haomeiwen.com/subject/pdtxgctx.html