GitLab合并代码并解决冲突演示
GitLab合并代码并解决冲突演示
本文将详细介绍在GitLab平台上将两个远程分支(dev-jwh和main)的代码进行同步并解决冲突的完整流程。通过本文,你将学会如何创建合并请求、填写合并信息、取消删除源分支的勾选、授权合并、解决冲突等具体步骤。
有两个远程分支,dev-jwh分支和默认的main分支。本地开发的代码已上传到远程分支dev-jwh上,现在需要将dev-jwh远程分支的代码同步到远程main分支上。
将两个远程分支代码同步并解决冲突
在GitLab同步两个远程分支的代码时,有两种情况:一种是提交后在界面出现提示(Create merge request),另一种是没有提示(New merge request)。
1. Create merge request
1.1 创建合并请求
选择"Create merge request"进行同步操作。如果这里没有提示,可以跳转到下一小节"2. New merge request"进行操作。
1.2 合并请求标题和描述填写
在"Title"中填写请求的标题,在"Description"中填写请求描述。默认内容即可。
1.3 取消勾选
在"Merge options"中的第一项"Delete source branch when merge request is accepted"默认是勾选的,一定要取消勾选。
1.4 授权并合并
依次选择"Approve"和"Merge"即可实现代码同步。
1.5 合并完成
如果代码没有冲突,则不需要解决,代码同步完成。
1.6 合并未完成-需解决冲突
如果有冲突,界面会提示"Resolve conflicts",此时需要点击"Resolve conflicts"解决冲突,可以跳转到第3小节"3. 冲突解决"。
2. New merge request
2.1 创建合并请求
当界面没有提交的合并请求时,可以在右上角新建合并请求,选择"New merge request"进行同步操作。
2.2 分支选择
左边是当前分支,右边是要合并到的分支,默认为main。左边选择dev-jwh分支,然后点击"Compare branches and continue"对比两个分支然后继续。
2.3 合并信息填写
可以对这次合并做一些内容设置,如给这次修改起个名字,然后写点描述。
2.4 取消勾选
在"Merge options"中取消勾选"Delete source branch"选项,默认是勾选的,如果不取消勾选,则合并后dev-jwh分支会被删除。
2.5 授权并合并
先授权点击"Approve"。
2.6 冲突解决
可以看到有"Resolve conflicts"表示有冲突需要解决,点击它即可。
2.7 代码选择
可以选择"Use ours"(dev-jwh分支)或"Use theirs"(main分支)。选择用哪个分支的代码进行覆盖,点击"Commit to source branch"将代码合并任务提交。
2.8 再次合并
返回merge界面,再次点击"Merge"。注意确认"Delete source branch"选项是未勾选的。
2.9 合并成功
Merge之后如果没问题,界面显示合并成功。
3. 冲突解决
3.1 制造冲突
在两个远程分支的某个代码片段改成不同的内容。例如,dev-jwh分支的内容是"列表数量",main分支的内容是"列表大小"。
3.2 合并及解决冲突
有冲突时,Merge按钮是灰色的,此时需要先解决冲突再Merge。点击"Resolve conflicts",然后在解决冲突界面选用"Use ours"(自己的代码覆盖别人的)还是"Use theirs"(别人的覆盖自己的代码)。这里选择"Use ours",即将注释内容为"列表数量"的内容保留。选了用自己的之后提交信息到资源分支"Use ours" --> "Commit to source branch"。解决冲突后返回merge界面,别忘了点"Approve"授权通过。
刷新界面,再次点击Merge。
3.3 合并成功
合并成功后的界面显示成功。
3.4 查看合并结果
查看远程仓库main分支的代码,已更新为自己的内容(获取列表数量),冲突解决。