Git 服务器版本控制部分(代码冲突)
代码冲突,一般为项目分支向 master 或者向其他分支提交合并请求时出现的问题
提交合并请求
程序开发完成并测试 OK 后,将自己的分支向 master 分支提交合并请求
点击 Submit merge request
合并时遇到冲突
合并时提示冲突
Merge Request提示不允许合并
冲突的解决方案
同一个工程,按照提交代码合并申请的先后顺序,后提交的需要解决与先提交者的代码冲突(如有)
注意:多个 Merge Request 按照一定的顺序进行合并,后合并的分支如遇到代码冲突,审核人将会通过邮件的形式回复给对应的开发人员。
对应的开发人员应将自己在本地拉取 master 分支并将 master 分支合并到自己开发的分支,解决所有的冲突后,再次推送代码,此时无需再次申请 Merge Request (一个分支只需要提交一次 Merge Request )。
接下来讲解代码冲突的解决方案(在本地项目 目录下)
1、请线切换到 master 分支 (git checkout master)
2、将 master 分支更新为最新版本 (git pull)
3、然后切换到当前的分支 (git checkout czq-dev)
4、最后 git merge master 将 master 分支合并到当前开发的分支
5、截图中使用的是 git merge FETCH_HEAD 在正常情况下使用 git merge master,此处只是为了演示采用的 FETCH_HEAD ,正常情况下我们使用 git merge master
可以看到冲突文件为MainConfig.java 打开 MainConfig.java
解决冲突后,重新将冲突文件进行 add 和 commit,最后再对分支进行push操作
其他问题补充
Q1:git push时候失败了如何处理
A:注意hints的Updates were rejected because the tip of your current branch is behind部分指的是当前分支状态比远程分支状态要落后,所以在操作之前请先进行git pull操作
Q2:git clone为什么只有master分支
A:默认在clone时候,拉取的是master分支,如需要clone时指定分支需要加-b指令
举例如下:
如果需要clone Home应用的dev-czq分支
git clone https://gitlab.meadvilletech.com/erp/mverp-home.git -b dev-czq
Q3:Merge Request提示不允许合并
A:此问题是合并冲突,解决方案如下:在本地打开终端按顺序执行以下代码
//1. 切换到master分支
git checkout master
//2. 更新master分支
git pull
//3. 切换回开发分支
git checkout dev-XXX
//4.合并代码
git merge master
合并详细部分可以查看:冲突的解决方案 章节