1. 前言
团队合作开发,肯定会涉及到代码合并的问题。
以前在代码合并的时候,喜欢使用beyond compare。同一个项目拷贝两份,一个保持最新代码,一个用于开发,开发完成后使用beyond compare把开发代码合并到最新代码。然后push到远程分支,提一个MR。
后来发现,使用IDEA配合Git命令来合并代码,简直完美。本文就来记录一下这种方法,供大家参考。
已知项目名为 voidking,有很多分支,其中 pre 分支用来发布服务到预发环境,master分支用来发布服务到生产环境。代码合并后,创建pre或者prod开头的tag,触发CICD。
2. 开发
1、在github或者gitlab新建一个issue,描述清楚问题或者功能。
2、针对这个issue,创建一个分支。这个分支会以issue的标题命名,前面加上issue的编号。假设生成的branch为 3-add-new-feat 。
3、拉取最新代码后,本地创建自己的分支git checkout -b haojin
4、一顿复制粘贴,功能完成,commit自己的代码。
3. pre分支代码合并
到了代码合并的步骤,表演开始。
1、拉取最新代码
1 | git checkout master |
2、创建mergepre分支
1 | git checkout -b mergepre origin/pre |
3、使用IDEA合并代码
点击界面右下角Git Branches,选择 haojin 分支,Show Diff with Working Tree。
根据自己的修改,合并代码到当前的mergepre分支,修改完成后commit代码。
4、push代码
1 | git push origin HEAD:haojin --force |
需要注意的是,这里我们把mergepre的分支push到了远程的haojin分支,并没有push到 3-add-new-feat 。这是因为,3-add-new-feat这个分支我们留着,代码合并到master分支时使用。
点击出现的链接,或者在gitlab上的haojin分支点击创建MR,进入创建MR的页面。
5、选择要合并到的分支为 pre ,可以看到代码的变更,再次检查。
6、检查没问题的话,提交MR即可。
4. master分支代码合并
以上,假设我们已经合并了自己的代码到 pre 分支。并且在预发环境发版验证通过,没有问题。接下来就可以合并代码到 master 分支了。
1、拉取最新代码
1 | git checkout master |
2、创建mergeprod分支
1 | git checkout -b mergeprod |
3、使用IDEA合并代码
点击界面右下角Git Branches,选择 haojin 分支,Show Diff with Working Tree。
根据自己的修改,合并代码到当前的mergeprod分支,修改完成后commit代码。
4、push代码
1 | git push origin HEAD:3-add-new-feat |
点击出现的链接,或者在gitlab上的haojin分支点击创建MR,进入创建MR的页面。
5、选择要合并到的分支为 master ,可以看到代码的变更,再次检查。
6、检查没问题的话,提交MR即可。
5. 代码冲突解决办法
问题描述:git pull 之后,出现代码冲突。
解决办法:菜单栏Git,Merge,Resolve Conflicts,选中冲突代码,Merge。