一、简介
在Git(4)中,我们已经对已学习的Git命令做一个总结,接下来将引入一个新的概念分支,本篇文章将用一个基于分支修复bug的案例来介绍Git分支的概念和用法
二、案例
①使用如下命令可以查看当前Git所在分支
git branch
可见当前我们所处的分支为master
②使用如下命令可以创建新的分支
git branch 分支名称
例如:
git branch dev
创建完成后,使用git branch查看分支可以发现多了一个名为dev的分支
③使用如下命令切换到dev分支
git checkout dev
使用git branch命令可以看到当前的分支已经切换到了dev
④修改txt文件,新增商场功能
⑤提交代码到dev分支
命令如下:
git add . # 提交代码到暂存区
git commit -m "商场开发50%" # 从暂存区提交到版本区生成版本
git log # 查看git版本提交记录
通过版本提交记录可以发现,当前的版本指针指向dev分支,而master分支的代码还停留在"约饭功能新增"上
⑤此时问题来了,假设现在商场开发已经开发了50%,并且已经耗费了开发工程师一个月的时间,但是现在发现约饭功能出现了严重的bug需要修复,基于现在所学的知识,我们只能将版本切换回master分支然后修复bug,那开发了一个月的商场功能的代码将会被直接覆盖,相当于一个月白干,如何避免这样的问题发生?git的分支管理便可以很好的解决这个问题
⑥使用如下命令切换回master分支,并创建修复bug的分支
git checkout master
git branch bug
⑦切换到bug分支,并在txt文件中修改bug,命令如下:
git checkout bug
⑧使用如下命令,将代码提交到bug分支
git add .
git commit -m "约饭功能bug修复"
⑨此时bug已经修复,但这仅针对于bug分支,而正式面向用户的master分支还未修复bug,因此现在我们需要用到Git的合并功能,命令如下:
git checkout master # master分支合并代码,首先就要先切换回master分支
git merge bug
此时在查看master分支下的txt文件
可见已经同步了bug分支下的代码,成功修复bug
⑩此时的bug分支其实对于我们来说已经没有用了,因为它仅是我们用于紧急修复bug创建的分支,因此现在需要把这个分支给删除,命令如下:
git branch -d bug
使用git branch查看当前分支发现bug分支已经被删除了
⑪当前的商场功能还未开发完毕,因此我们需要将分支重新切换到dev分支,命令如下:
git checkout dev
⑫查看dev下的txt文件,它现在的约饭功能会是已经修复bug的版本吗?
可见,在dev分支上并没有将约饭功能的bug修复,原因在于创建dev分支时,是基于约饭功能新增的版本创建的,后续再master分支上的操作并不会影响到dev分支,这就是分支的隔离性
⑬当我们把商场功能开发完后,所做的事情便是提交到dev分支生成新的版本,然后切换到master分支进行合并,命令如下:
git add .
git commit -m "商场功能开发完毕"
git checkout master
git merge dev
我们发现在最后git merge合并dev代码的时候报冲突了,原因在哪呢?
⑭查看当前的txt文件
我们发现两种约饭功能都同时存在,我们现在肯定是想要上面bug功能已修复的代码,那应该如何操作呢?
⑮具体的方法就是我们去手动解决冲突,将txt文件修改成如下样式:
⑯最后在提交代码到版本区生成新的版本,命令如下
git add .
git commit -m "商场功能开发完毕并解决合并冲突"
git log
以上便是Git分支的一个小案例,希望大家通过该案例能够有所收获