Git 合并分支及解决冲突
一、Git的工作流:
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命令。