本节涉及Git命令
-
git branch
:列出全部分支 -
git branch <name>
:创建分支 -
git checkout <name>
:切换分支 -
git diff <branch1> <branch2>
:对比两个分支 -
git diff --quiet <branch1> <branch2>
:对比两个分支是否存在差异,但不显示细节 -
git diff <branch1> <branch2> <filename>
:对比两个分支中某个具体文件差异 -
git merge
:合并分支 -
git branch -d <name>
:删除分支
一:分支管理概述
分支的存在,极大的强化了不同开发者的协作管理,在一个功能的开发过程中,可以在一个单独的分支上完成,这样不影响主分支的开发,待功能完成后再将分支的内容合并到主分支
使用git branch
命令可列出所有已经存在的分支,其中标有*
表示这是当前工作分支,默认状态下只有一条主分支master
每次提交到分支,Git都会把它们传成一条时间线,这条时间线就是一个分支。master
或其它分支名本质是一个指针,它们指向的是该分支上最新的提交,然后我们会用前面所介绍的HEAD
指针指向master
或其它分支名
如上图,在我们之前的工作中,一直都在master
分支上进行,因此每次提交,master
分支都会向前移动一步。当我们创建一个新的分支时,假如名字叫做dev
,Git就会新建一个指针dev
,指向master
上相同的提交,当我们切换分支时,再把HEAD
指向dev
即可
从现在开始,对工作区的修改和提交就都是针对dev
分支了。例如新提交一次后,dev
指针向前移动一步,而master
指针不变
假如我们在dev
上的工作完成了,就可以把dev
合并到master
上,直接让master
指向dev
即可
合并完成后,也可以删除dev
分支
二:相关基本操作
(1)查看分支
作用:使用git branch
命令可以查看目前存在的分支,其中当前所在的分支会用*
标记
例子:
如下,可以发现,目前仅仅存在mater
这一条分支
- 从项目创建之初,有且唯一的分支就是主分支,主分支被叫做
master
。git 的master
分支并不是一个特殊分支,它就跟其它分支完全没有区别。之所以几乎每一个仓库都有master
分支,是因为git init
命令默认创建
(2)创建分支
作用:使用git branch <name>
可以创建一条名为<name>
的分支。在一般项目开发中,会创建以下几种类型的分支
-
主分支(
master
):主分支是代码库的主要分支,通常用于发布稳定版本的代码。开发人员在主分支上提交的代码需要经过严格的测试和审核,确保代码的质量和稳定性。 -
开发分支(
develop
):开发分支是用于日常开发的分支,通常从主分支分离出来。在开发分支上进行的所有工作都会集成到该分支上,直到该分支的功能完成并准备好发布稳定版本。 -
功能分支(
feature
):功能分支是从开发分支分离出来的分支,用于开发特定的功能。在功能分支上进行的所有工作都与该功能相关,开发人员可以在该分支上独立开发,并在功能完成后将该分支合并到开发分支上。 -
补丁分支(
hotfix
):补丁分支是用于修复已发布版本中出现的问题的分支,通常从主分支上分离出来。在补丁分支上进行的所有工作都是针对该版本的修复工作,修复完成后,将该分支合并回主分支和开发分支上。 -
发布分支(
release
):发布分支是用于准备发布版本的分支,通常从开发分支分离出来。在发布分支上进行的工作包括准备发布版本所需的文档、测试、打标签等,一旦发布完成,该分支会被合并到主分支和开发分支上
例子:
如下创建两条分支,分别用于开发和bug修复,名称分别为dev
和bugfix
(3)切换分支
作用:使用git checkout <name>
可进行分支之间的切换
例子:
如下,我们将目前所在分支切换到dev
上
现在,在该分支上建立一个文件BranchTest.txt
,在写入一些内容后提交
然后我们再次切换回主分支,你会发现刚才生成的BranchTest.txt
不存在了
(4)分支对比
作用:使用git diff
命令对两个分支进行差异对比,常用用法如下
git diff <branch1> <branch2> # 对比两个分支
git diff --quiet <branch1> <branch2> # 对比两个分支是否存在差异,但不显示细节
git diff <branch1> <branch2> <filename> # 对比两个分支中某个具体文件差异
例子:
如下
(5)合并分支
A:合并分支
作用:使用git merge
可以将两个分支进行合并
例子:
如下,目前我们在master
分支上,现在我们将dev
分支上所做的更改合并至master
分支
B:冲突合并
当Git尝试将两个分支合并时,如果两个分支都对同一个文件的相同部分进行了修改,就会发生冲突。在这种情况下,Git无法确定哪个更改是正确的,因此需要手动解决冲突
- 将两个分支的文件,进行对比修改,满足两个分支的提交
- 使用
git add
和git commit
进行一次新的提交。(此时提交的是master
分支) - 再次合并
例子:
如下,切换回dev
分支,这次我们对Hello.py
文件进行修改
然后切换回master
分支也对Hello.py
文件进行修改,插入与之不同的内容
现在尝试合并,可以发现Git报错
其含义是需要我们手动处理冲突,使用git diff
也可以查看到两个分支上文件的差异
现在,我们将master
分支上的这个Hello.py
文件最后一行删除
再次合并即可
(6)删除分支
**作用:使用git branch -d <name>
**可将分支删除文章来源:https://www.toymoban.com/news/detail-401308.html
例子:
文章来源地址https://www.toymoban.com/news/detail-401308.html
到了这里,关于第三节:Git分支管理(关键词:git branch、git checkout、git diff、git merge、查看、创建、切换、对比分支)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!