Git基础知识(六)
分支的新建与合并
模拟修复Bug的场景
- 正常在工作分支「dev」上进行特性开发
- 测试告知主线版本「master」出现了一个bug「编号666」需要修复
- 在出了版本的分支上新建一个新的分支「666」
- 修复问题,提交修改,并推送至远端
- 让管理员把「666」分支合入到主线
- 切换回特性开发分支继续开发
新建分支
因为是主线上的bug,所以先切回到主线上去,不过本地的主线可能有点旧了,所以把本地的master分支删掉,然后和远端同步一下之后再从远端把master分支检出
1 | git branch -d master |
现在master分支是库上最新的了,我们可以放心的从当前提交拉出一个新的bug修复分支了
作为一个有即将可能成为优秀程序员的人,当然要学会偷懒了,使用checkout -b
一起完成新建和切换分支的操作
1 | git checkout -b 666 |
然后「666」分支上进行修改,提交,推送到远端
1 | vim 1.py |
好了,现在使用git checkout
切回到原来工作的分支去就行了。
不过假设你是管理员,那么你就需要多干一点事情了,把这个提交给合并到主线去才能算完成工作。
1 | git checkout master |
合并冲突
假设有两个人一起在开发,那么就可能会出现,修改了同一行内容的情况。这样合并的时候就会报出冲突。
环境搭建
首先要构造一个这样的环境
在当前的提交「A」上拉出两个分支「B」「C」,并修改同一个文件,然后先后合入到原来的提交「A」上。
先合并B然后合并C
查看冲突:
只有<<<<<<<
和=======
和 >>>>>>>
都去除掉了才能正常提交
其中=======
上面是「HEAD」的部分
下面是「C_」分支部分
提交之前也还是需要进行提交,这样本地的位置「HEAD」就指向本地的master了
分支管理
查看全部分支
1 | git branch |
过滤已经/还没合并的分支
1 | git branch --no-merged # 查看还未合并的分支 |
新建了一个分支「D_
」并完成了一次提交,切换回「master」的时候使用查看还未合并的分支
命令可以看到分支「D_
」