保姆级!Git分支合并及解决冲突

Git 合并分支及解决冲突

一、Git的工作流:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mFunpwv8-1605881245312)(C:\Users\cyy123\Desktop\博客\git的工作流.jpg)]

1.工作流大概介绍:

Git作为一个可以协同团队开发代码的工具,我们要使用它,明白它的工作流程很重要。图中的每一个圆点都可以看作是一个版本,Git有指针指向相应的版本,如HEAD指针指向当前所在版本,每一次的git commit 都代表了一个新的版本的诞生,这是HEAD指针也就移动了。

其中我们需要协同开发,那最起码我们要做到两个团队相对独立,但是最终又能何为一体。所以这里就有了一个分支的概念,分支抽象的可以理解为,一个河流分为两条道,分开流淌后,然后最终又重新合并。

二、合并分支及产生冲突的场景

在实际的开发中,假设有个团队对现有的系统的一个功能进行再次开发与修改,那么我们肯定不能在原来的代码和分支中开发,以免干扰,这时候,我们就在这个分支上新建一个分支,新建的分支开始的代码和原有代码一模一样,但是又和原有代码独立,互不干扰。这样该团队就可以进行开发了,开发过程中,对原来的某些代码进行了改动,以及添加了一些新的代码。然后最后要合并到原来系统所在的分支上,但是由于修改原来的代码,就会产生冲突,Git不知道该取舍哪个分支的代码,于是就提示我们自己合并,手动解决冲突。

三、具体操作

我们有两个分支,一个main分支,假设为原来系统所在分支;另一个featrueA分支,为了添加新功能的分支。

1.我们处于featrueA分支,其中假设1.txt是原来的就代码,我们即将对其修改:在这里插入图片描述

2.对1.txt进行修改,改变了1.txt文件的内容:
在这里插入图片描述

3.然后我们有重新创建一个原来分支没有的文件模仿实现新功能,新建一个2.txt
在这里插入图片描述

4.最后我们将这个两个有变动的文件加入暂存区,并提交
在这里插入图片描述

5.然后我们要合并了,首先,切换到要合并到的分支main
在这里插入图片描述

6.利用git merge 【分支名】合并
在这里插入图片描述

注意:此时提示自动合并失败,有冲突,需要修改冲突,并重新提交结果,这里变成了(main|MERGING)

7.接下来,我们解决冲突,进入产生冲突的1.txt文件中
在这里插入图片描述

*这里<<<<HEAD到====之间的是原来的功能,=到>>>>>之间是新修改后的功能。我们显然取后面这个,所以我们删除<<<<HEAD到,=====到>>>>>及其中间代码,重新提交*
在这里插入图片描述

8.保存,重新提交
在这里插入图片描述

这里出现了一个小乱码,先不管。可以看到合并成功了,我们看下最终结果

9.最终结果:
在这里插入图片描述

可以看到最终1.txt中的新内容加过来了,原来没有的2.txt也加过来了。

四、小结

分支合并主要涉及到的命令有:git add (添加到暂存区),git commit(提交) ,git checkout(切换分支),

分支合并主要涉及到的命令有:git add (添加到暂存区),git commit(提交) ,git checkout(切换分支),

git merge(合并分支),以及常用的Linux命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值