Git入门-git分支

1. 分支概念:

假设当前文件为版本1,此时需要在原有基础上删除/增加一些代码,在git内部是如何实现的呢?

将版本1的所有文件进行复制,然后再进行修改生成版本2,这样显然是不合理的。git中在版本2中只保存修改的部分,未变动的文件不会保存在版本2中,然后在版本2和版本1之间创建一个指针,将版本2指向版本1。之后在版本2的基础上生成版本3也是如此,这样就形成一个链条v1<--v2<--v3(可以视为主干部分)。

此时要在版本3的基础上同时开发两个不同的功能,就需要用到分支了

2. 修复线上bug思路:

假设此时正在开发功能4,此时版本3中某个功能出现了bug需要去修复,该怎么办?

按照之前的思路,需要将功能4写好的文件代码舍弃,回退到版本3进行修复,这样显然不合理。此时需要分支的参与:

在这里插入图片描述

上图中v4表示正在开发新功能,这是一条分支;v5表示修复版本3的一条分支,修复完后可以进行分支的合并为v5;当新功能开发完成后合并为v7。上述过程中并不会影响新功能的开发,又能将版本3的bug进行修复重新上线。

3. 分支操作:

假设在当前文件夹中已经有了三个版本,开始针对第2节的问题进行操作:

  1. 使用git log查看版本信息:

在这里插入图片描述

  1. 使用git branch查看分支信息:

在这里插入图片描述

​ 上图表示目前处在master(主干)分支上

  1. 使用git branch dev创建新的分支dev:

在这里插入图片描述

  1. 使用git checkout dev切换到新创建的dev分支:

在这里插入图片描述

​ 此时在dev分支开发功能是不会影响到主分支的。假设此时在dev分支下添加新功能,再次去查看分支信息:

在这里插入图片描述

​ 可以看到出现HEAD->dev。此时再切换到主分支:

在这里插入图片描述

​ 可以看到原来在dev分支的版本不见了,并且代码也恢复为版本3的代码。

  1. 使用git branch bug创建新的分支bug用于修复版本3的bug。因为是要修复版本3(即master分支)的bug,所以再创建bug分支前要切换到master分支
  2. 在bug分支下修复好版本3中的bug:

在这里插入图片描述

  1. 将bug分支合并到master中。首先需要切换回master中,然后使用git merge bug合并bug分支(此时不会产生冲突是因为bug分支就是在当前的master上进行修改的,不存在9的情况):

在这里插入图片描述

  1. 合并完后bug分支已经没有用处,此时使用git branch -d bug删除bug分支
  2. 将开发的新功能合并到master分支中。但是如果此时也切换到master中并使用git merge dev出现冲突:

在这里插入图片描述

​ 因为新功能的代码可能和master的代码有冲突(此时的master是修复了bug的master,this is version_3变为了this is version_3(fix bug),而dev分支中保留的还是this is version_3)。此时需要手动去修复冲突的部分:

在这里插入图片描述

​ 如上面的冲突所示,需要将this is version_3以及HEAD和dev的标识删除

  1. 解决完冲突后再addcommit即可

4. 参考

https://www.bilibili.com/video/BV17r4y1K7HB?p=9–>https://www.bilibili.com/video/BV17r4y1K7HB?p=12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值