问题及解决
Gitlab分支合并时碰到了合并冲突的问题,进行了本地解决冲突的操作,并成功进行了合并。
在服务器端的冲突解决比较简单,在此不赘述,这里主要记录下在本地解决冲突的操作。
Gitlab冲突的根本原因是多个开发者在有冲突的两个分支里更新修改了同一个文件,在本地解决冲突可以进行rebase
的操作解决冲突,再进行分支合并。示例:
#这里dev是主分支,也就是要合并完成的分支,test是要进行合并的分支,
#也就是要将test分支合并到dev分支,出现了冲突
#合并冲突发生后,进行以下操作
# 1, 这里在本地对test分支进行rebase操作同步到dev分支,
# 2, 再同步到远端的服务器。
# 3, 同步完成后,再进行分支合并,就没有冲突的错误了。
C:\local_work_folder> git rebase origin/dev
# 这里会提示各种冲突,按照提示,在本地解决合并冲突,以下是几个提示:
...
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
...
# 每解决一个冲突,执行以下指令接着合并:
C:\local_work_folder> git rebase --continue
# 直到解决完所有冲突后,将本地版本上传到远端
C:\local_work_folder> git push -f origin test
# 至此,所有冲突解决,在Gitlab服务器端完成合并,不会再返回冲突的问题。
参考
stackoverflow: How to resolve conflict in merge request in gitlab?
CSDN: gitlab 分支合并 冲突处理
CSDN: Gitlab合并代码并解决冲突演示