在解决冲突前,需先将本地仓库更新至远程GitLab的最新状态,避免因本地代码过时引发冲突。
执行以下命令获取远程最新更改:
git fetch origin
当执行合并分支(git merge)或拉取远程更新(git pull)时,若存在冲突,Git会明确提示“CONFLICT”(冲突)。
使用以下命令查看具体哪些文件发生冲突:
git status
冲突文件会被标记为“both modified”(双方修改)。
打开发生冲突的文件,会看到Git自动插入的冲突标记,结构如下:
<<<<<<< HEAD
你的本地分支修改内容
=======
远程分支(如main/master)的修改内容
>>>>>>> 远程分支名
<<<<<<< HEAD:表示本地分支的最新提交。=======:分隔线,上方是本地更改,下方是远程更改。>>>>>>> 远程分支名:表示远程分支的最新提交。解决冲突的关键:手动编辑文件,保留需要的代码(可全部保留本地、全部保留远程或合并两者),并删除所有冲突标记(<<<<<<<、=======、>>>>>>>)。
解决完所有冲突文件后,需将文件添加到暂存区,告知Git冲突已处理:
git add 文件名 # 单个文件
# 或
git add . # 所有已解决的冲突文件
将暂存区的更改提交到本地仓库,生成合并提交(记录冲突解决过程):
git commit -m "解决合并冲突:[简要说明解决内容,如'保留本地用户模块修改,同步远程订单接口']"
将本地解决冲突后的分支推送到远程GitLab仓库,完成冲突解决流程:
git push origin 你的分支名
若推送时遇到权限问题,需检查SSH密钥是否添加至GitLab账户,或使用正确的HTTP凭证。
若不想在本地操作,可直接在GitLab Web界面解决冲突:
git stash备份本地未提交的更改,避免误操作丢失数据。