前言
多人协作开发的时候,需要对项目代码做版本管理。大家做新版本的开发,需要基于上一个版本新建一个自己的开发分支,自己开发分支的程序测试通过后,就要合到线上的分支以供发版,在合并分支的时候可能会有冲突,那么需要解决冲突后提交合并的代码。本篇教程主要讲解使用git merge来进行分支合并,git rebase也可以做分支合并,本教程先不讲,git merge在合并分支时可以保留子分支的commit记录,下面就来实际地演示如何合并分支:
1.新建分支
开发人员lxj,基于master分支新建了自己的开发分支dev_1_1_0_lxj,并且在该分支上进行了开发并提交了代码,以下是他的操作步骤:
① git checkout -b dev_1_1_0_lxj
② git push --set-upstream origin dev_1_1_0_lxj
③ 编写代码。创建新文件main.py,写了一个两数相乘的程序
④ git add .
⑤ git commt -m "feat:两数相乘"
⑥ git push
开发人员gc,基于master分支新建了自己的开发分支dev_1_1_0_gc,并且在该分支上进行了开发并提交了代码,以下是他的操作步骤:
① git checkout -b dev_1_1_0_gc
② git push --set-upstream origin dev_1_1_0_gc
③ 编写代码。创建新文件main.py,写了一个三数相乘的程序
④ git add .
⑤ git commt -m "feat:三数相乘"
⑥ git push
2.合并分支
首先,将dev_1_1_0_lxj合并到master分支上,以下是操作步骤:
①git checkout master
②git merge origin/dev_1_1_0_lxj
③git push
然后,将dev_1_1_0_gc合并到master分支上,以下是操作步骤:
①git checkout master
②git merge origin/dev_1_1_0_gc
在执行合并命令git merge origin/dev_1_1_0_gc的时候,由于lxj和gc都编辑了main.py文件中同一行的代码,所以合并分支失败,需要解决冲突,然后提交代码,下面是报的冲突信息:
同时,在编译器Pycharm中,main.py也是报红的状态,如下图所示,下面对冲突中哪部分是谁的代码做了说明。在这种情况下,需要和其他开发人员核对一下,确定要保留下来的代码是哪些,别把别人有用的代码删了!!!
<<<<<<< HEAD
本地代码
=======
拉下来的代码
>>>>>>>
确定了要保留的代码后,如下图所示,需要提交合并后的代码,以下是操作步骤:
①git add .
②git commit -m "feat:合并冲突"
③git push
3.总结
以上就是多人协作开发时,需要进行分支合并的操作流程,本教程Demo地址。学会分支合并方便项目的版本控制。后面一期,我会出一个git的进阶教程,git cherry-pick的使用,用于"挑拣"提交,当我们不想把本地的整个分支进行合并时,就可以使用git cherry-pick将某几次提交合入到本地分支上。