目录

Git分支

Git分支

学习目标:

  • 什么是分支
  • 分支有哪些操作
  • 查看分支命令
  • 创建和切换分支命令
  • 合并分支命令
  • 合并分支遇到冲突怎么办

什么是Git分支

在公司中用户用的服务器存储的代码叫生产服务器,一个分支让用户用,部署分支让运维使用,开发dev分支给程序员开发和测试,每个分支上有多个人去推送和修改。

在版本控制的过程中,同时推进多个任务,为每个任务,我们可以创建每个任务的单独分支,使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己的分支的时候不会影响主线分支的运行,对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本,分支底层也是指针的引用。

../../../images/13.png

在master分支的开发主线中,如果需要开发别的功能比如特性蓝,feature-blue,则可以在master分支上开发一个feature-blue版本,如果该本在与master主线分支合并后有bug,那么可以在合并版本的基础上创建hot-fix分支,在该分支上可以修复bug。

分支的优点:

  • 可以同时并行推进多个功能的开发,提高开发效率。
  • 各个分支在开发过程中,如果一个分支开发失败,不会对其他分支有任何影响,失败可以重新开发一个分支。

分支的操作

命令名称 作用
git branch 分支名 创建分支
git branch -v 查看分支
git checkout 分支名 切换分支
git merge 分支名 把指定的分支合并到当前分支上

查看分支

语法:

1
git branch -v

效果:

../../../images/14.png

可以查看得知当前只有main分支,当前版本是second commit。


创建和切换分支

创建分支语法:

1
git branch 分支名

效果:

../../../images/15.png

切换分支语法:

1
git checkout 分支名

效果:

../../../images/16.png

在hot-fix分支上修改代码:

../../../images/17.png


合并分支

如果直接回到main分支那么在hot-fix分支中所做的修改则不会看到,如下图,这时候需要用到合并分支。

../../../images/18.png

如果站在main分支上合并hot-fix分支,合并分支语法:

1
git merge hot-fix

效果:

../../../images/19.png

正常合并没有产生代码冲突,是因为main分支上没有修改,hot-fix修改了,所以不会产生冲突。因为head指针从main版本指向了hot-fix分支的版本,head–>main–>second commit 变为了 head –> hot-fix–> hot-fix first commit。


冲突解决

两个分支在同一个文件位置有两套完全不同的修改时会产生冲突,使用合并分支时会有提示,需要人为决定要保存哪个。

首先修改main分支:

../../../images/20.png

切换回hot-fix并同时修改:

../../../images/21.png

切换回main并merge合并:

../../../images/22.png

上方会提示合并失败,两个分支都在同一个地方有不同的修改,这时候需要手动修改:

../../../images/23.png

../../../images/24.png

保留hot-fix的代码:

../../../images/25.png

添加并提交(提交时不要带文件名,因为会提示需要保留哪个版本):

../../../images/26.png

查看冲突是否解决:

../../../images/27.png


总结