git 基本概念和术语


工作区、版本库、暂存区、远程版本库

在这里插入图片描述

工作区、暂存区、版本库、远程 原理图

工作区: 也称为工作树,特定工程下的所有工作目录的集合,但不包括 .git 目录 。工作区中的文件就是我们当前正在开发的工程文件。

版本库: 隐藏的 .git 目录就是 Git 版本库。里面包含暂存区,对象库和所有的分支和提交等等。

暂存区: .git/index 是一个包含文件索引的目录树,像是一个虚拟的工作区。对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树将被更新。同时工作区修改(或新增)的文件内容会被写入到对象库中的一个新对象中。

远程版本库: 存储于服务器上的版本库。


commit 对象、tree 对象、blob 对象

在这里插入图片描述

所有的 Git 对象都有一个 SHA1 哈希值表示的唯一对象 ID

commit 对象: 就是我们通常所说的提交,记录了本次提交的父提交(上一次提交),以及本次提交的目录树,提交作者信息等等。

tree 对象: 就是我们通常所说的目录树,一个包含文件名和模式的列表的对象,以及对相关的 blob 和树对象的引用。树相当于一个目录。

blob 对象: 无类型对象,例如文件的内容。


head、HEAD、master、main、分支名

在这里插入图片描述

head: 分支顶端对提交的命名引用(即分支名)。head 存储在 .git/refs/ Heads/ 目录下的一个文件中。

HEAD: 当前分支。更详细地说:你的工作区通常是从 HEAD 引用的树的状态中提取出来的(切换分支时会改变工作区)。HEAD 是对存储库中的一个 head 的引用,除非使用分离的 HEAD,在这种情况下它直接引用任意提交。

master: 默认的开发分支。无论何时创建 Git 存储库,都会创建一个名为 “master” 的分支,并成为活动分支。这纯粹是惯例,并不是必需的,master 分支和其他任何普通分支完全一样。

main: 同 master ,自某漂亮国黑人事件之后,觉得 master 一词可能会有点冒犯,于是乎后续版本改名为 main 。

分支名: 即 head ,是对分支顶端的引用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值