深入理解git底层原理及常用命令

概要

本文主要讲解git底层原理及常用使用

整体架构流程

在这里插入图片描述

git底层原理

git是一个分布式文件管理系统,其数据内容都存储在.git/objects文件夹下,底层数据存储结构类似于一个hashmap,其中value为我们需要存储的数据,key为value经过算法生成的hash值,git存储的数据对象分为三种类型

  • 数据对象
    存储真实的数据内容
    数据对象内部结构

  • 树对象
    包含数据对象和树对象,类似文件夹和文件的关系
    树对象内部结构

  • commit对象
    每次执行commit命令,都会生成一个commit对象
    commit对象内部结构
    git的三种数据对象生成后都不可修改,如果修改会生成新的对象,原始对象是不可变的,下图描述了git数据存储结构,列举了两次commit,git数据结构变化,git每次commit都会生成一个commit对象,该对象是git仓库镜像的入口引用,里边包含我们需要的所有数据内容

在这里插入图片描述

git branch、tag、commit对象 关系

通过上边介绍,我们了解到每个commit对象都是git仓库的一个镜像(其实是一个镜像入口地址),我们工作中常用的分支和tag其实就是对应的一个commit对象,如下图所示,左边是分支名称,右边是commit对象的key,tag也是相同的逻辑
在这里插入图片描述
commit对象、分支、tag示意图
通过上边的讲解,我们理解了分支、tag和commit的关系,在git中还有一个HEAD头指针的概念,它指向当前工作区对应的commit对象,每次提交HEAD都会移动到新生成的commit对象,我们可以通过移动头指针达到改变工作区内容的目的,通过reset、checkout 等命令可以灵活移动头指针

常用命令

https://worktile.com/kb/ask/20275.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值