目录
前言
一、概念原理
1、分支
2、原理
说明1:
说明2:
二、分支操作
1、查看分支
2、创建分支
3、切换分支
4、删除分支
5、合并分支
6、合并冲突
7、重命名分支
8、编制分支的介绍
三、标签
1、概念
2、操作
总结
前言
分支,另外在开一条线路,不影响主分支,主分支继续干自己的事情,分支可以辅助干点别的事情;使用不同的分支,并行的实现相关的操作,最后把分支操作合并到主分支中,在Git中,初始化仓库时,Git系统会默认分配一个主分支,名称为:master(可配置修改-main);
一、概念原理
1、分支
- 基于某个分支,另外开启的一条新的线路
- 不影响不破坏主分支
- 使用不同的分支,并行的实现相关的操作,最后把分支操作合并到主分支中
- 在Git中,初始化仓库时,Git系统会默认分配一个主分支,名称为:master(可配置修改-main)
2、原理
每一次版本提交时,Git仓库会创建以以下三类对象进行存储:
- blob 对象:保存着文件快照,有多少个文件就有多少个 blob对象
- 树 对象 :记录着目录结构和 blob 对象索引
- 提交 对象:包含着指向前述树对象的指针和所有提交信息
# 操作一:创建以下三个文件,提交版本
$ touch README test.rb LICENSE
$ git add .
$ git commit -m 'The initial commit of my project'# 结果:一个提交对象、一个树对象、三个blob对象
# 操作二:继续做两个版本的提交
$ touch 1.txt
$ git add .
$ git commit -m '1.txt'
$ touch 2.txt
$ git add .
$ git commit -m '2.txt'
说明1:
- 图中只画了提交对象,省略了树对象和blob对象
- 各个提交对象串联起来,形成的线路我们称之为分支
- 默认只有一条分支,称之为主分支,名称为master
- 每次提交对象都会指向上一次提交对象的指针
- 第一个版本的提交没有上一次提交对象
HEAD:特殊的指针
说明2:
- v1.0是标签
- master是默认分支,它是一个是一个特殊的指针,指向默认分支的最后提交对象
- HEAD也是一个特殊的指针,它指向当前分支。也就是说,我们可以理解为,它是当前指针的别名。
二、分支操作
1、查看分支
# 查看
$ git branch# 查看所有的分支和远程分支
$ git branch -a# 查看各个分支当前所指的对象
$ git log --oneline --decorate
2、创建分支
# 创建一个新的分支: git branch <分支名称>
$ git branch testing
# 创建分支的同时,切换分支: git checkout -b 分支名称
$ git checkout -b feature_login
3、切换分支
# 语法一: git checkout <分支名称>
$ git checkout testing# 语法二: git switch <分支名称>
$ git switch testing
4、删除分支
# 删除一个分支:git branch -d <分支名称>
$ git branch -d testing
5、合并分支
# 合并分支:git merge <分支名称>
$ git merge testing
6、合并冲突
Administrator@SIT-20210425BZM MINGW64 /e/S3/04-git/bt (main|MERGING)
$ cat 1.txt
<<<<<<< HEAD
好好学习
=======
好好学习----
宝宝巴士
学习好好
>>>>>>> testing
7、重命名分支
# 重命名分支
# git branch -m <旧名称> <新名称>
$ git branch -m main master
8、编制分支的介绍
# 编辑分支的介绍 git branch 分支名称 --edit-description
$ git branch myBranchName --edit-description
三、标签
1、概念
本质是某一个版本提交的别名,便于理解、软件发布,它是软件中的某个里程碑
2、操作
1)查看标签
$ git tag
$ git tag -l
$ git tag --list
2)创建标签
- 轻量标签:某一个版本提交的别名
- 附注标签 :标签描述、打标签者的名字、电子邮件地址、日期时间...
2.1)基于当前版本创建标签
# 创建轻量标签 : git tag 名称
git tag v1.0
# 创建附注标签 : git tag -a 名称 -m '描述信息'
git tag -a v1.1 -m '附注标签'
2.2)基于指定版本创建标签
# git tag -a 标签名称 提交的检验和 -m 提交描述
$ git tag -a v1.0 df4cfa75fd1577e8c443106ea2daab0233566322 -m '第一个版本'$ git tag -a v1.0 df4cfa75 -m '第一个版本'
3) 删除标签
# 删除标签:git tag -d <标签名称>
$ git tag -d v0.1
4)共享标签
$ git push origin v1.5
这里就分享到这了,希望能给小伙伴带来收货!
总结
使用分支意味着你可以把你的工作从开发主线上分离开来,避免影响开发主线。多线程开发,可以同时开启多个任务的开发,多个任务之间互不影响