Git分支
Git分支
学习目标:
- 什么是分支
- 分支有哪些操作
- 查看分支命令
- 创建和切换分支命令
- 合并分支命令
- 合并分支遇到冲突怎么办
什么是Git分支
在公司中用户用的服务器存储的代码叫生产服务器,一个分支让用户用,部署分支让运维使用,开发dev分支给程序员开发和测试,每个分支上有多个人去推送和修改。
在版本控制的过程中,同时推进多个任务,为每个任务,我们可以创建每个任务的单独分支,使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己的分支的时候不会影响主线分支的运行,对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本,分支底层也是指针的引用。
在master分支的开发主线中,如果需要开发别的功能比如特性蓝,feature-blue,则可以在master分支上开发一个feature-blue版本,如果该本在与master主线分支合并后有bug,那么可以在合并版本的基础上创建hot-fix分支,在该分支上可以修复bug。
分支的优点:
- 可以同时并行推进多个功能的开发,提高开发效率。
- 各个分支在开发过程中,如果一个分支开发失败,不会对其他分支有任何影响,失败可以重新开发一个分支。
分支的操作
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
查看分支
语法:
|
|
效果:
可以查看得知当前只有main分支,当前版本是second commit。
创建和切换分支
创建分支语法:
|
|
效果:
切换分支语法:
|
|
效果:
在hot-fix分支上修改代码:
合并分支
如果直接回到main分支那么在hot-fix分支中所做的修改则不会看到,如下图,这时候需要用到合并分支。
如果站在main分支上合并hot-fix分支,合并分支语法:
|
|
效果:
正常合并没有产生代码冲突,是因为main分支上没有修改,hot-fix修改了,所以不会产生冲突。因为head指针从main版本指向了hot-fix分支的版本,head–>main–>second commit 变为了 head –> hot-fix–> hot-fix first commit。
冲突解决
当两个分支在同一个文件位置有两套完全不同的修改时会产生冲突,使用合并分支时会有提示,需要人为决定要保存哪个。
首先修改main分支:
切换回hot-fix并同时修改:
切换回main并merge合并:
上方会提示合并失败,两个分支都在同一个地方有不同的修改,这时候需要手动修改:
保留hot-fix的代码:
添加并提交(提交时不要带文件名,因为会提示需要保留哪个版本):
查看冲突是否解决: