[Git] Git整理(二) 分支基础

本文详细介绍了Git分支的工作原理,包括创建、查看、切换、合并分支的操作,以及如何处理合并时遇到的冲突。Git分支是可变指针,用于跟踪提交历史。创建分支如`git branch `,切换分支用`git checkout `。合并分支用`git merge `,冲突时需手动解决冲突后再提交。
摘要由CSDN通过智能技术生成

参考资料:Git分支

Git工作原理

向Git中提交文件的基本过程如下:

git status
git diff .
git add .
git commit 

git add暂存文件时,实际上做了以下工作:

  • 1.为每一个需要暂存的文件计算校验和(SHA-1 哈希算法);
  • 2.把当前版本的文件快照保存到 Git 仓库中(Git 使用 blob 对象来保存它们);
  • 3.将校验和加入到暂存区域等待提交。

git commit提交文件时,则做了以下工作:

  • 1.首先会计算每一个子目录的校验和,然后将这个校验和在Git仓库中保存为一个树对象;
  • 2.创建一个提交对象,包含有git配置的基本信息、指向树对象的指针;
    这里举个例子:
$ vi README.md 
$ vi test.txt 
$ git add .
$ git commit -m "first commit"

当执行完以上命令时,此时git仓库中有如下几个对象:两个blob对象,记录这两个文件快照,一个树文件,记录目录结构和blob的索引,一个提交对象,包含有提交信息和指向树文件的索引。如图所示:
Git第一次提交时工作原理
之后每次修改提交,生成的提交对象中都会包含一个指向上次提交对象的指针,如图:
非第一次提交时
这样,多次提交就后就像一个链表一样对不同的版本建立联系。
Git的分支,就是指向提交对象的可变指针,当通过git init创建一个Git仓库时,会默认创建一个名为master的分支,也叫作主分支。在每次提交时,会自动向前移动到最新提交对象上,此外,Git还提供了一个特殊的指针HEAD指向当前所在的本地分支,如果此时处于master分支,图示如下:
这里写图片描述
可以将HEAD理解为当前分支的别名,了解这些原理后,也就能很好的理解分支的创建和切换了。

分支的操作

创建分支

创建分支使用git branch bname命令,会在当前的提交对象上创建一个指针:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值