当执行git merge(合并分支)或git pull(拉取远程更新)时,Git会提示哪些文件存在冲突(例如:“自动合并失败,修复冲突后提交”)。这是解决冲突的第一步,需明确冲突范围。
使用git status命令,Git会列出所有包含冲突的文件(通常标记为“both modified”)。这些文件是需要重点处理的对象。
打开发生冲突的文件,会看到Git插入的冲突标记,格式如下:
<<<<<<< HEAD
你的本地分支更改内容
=======
远程分支(或目标分支)的更改内容
>>>>>>> branch-name
<<<<<<< HEAD到=======之间是本地分支的最新提交;=======到>>>>>>> branch-name之间是远程分支或要合并的分支的内容。<<<<<<<、=======、>>>>>>>)。解决完所有冲突后,使用git add 文件名命令将每个冲突文件标记为“已解决”(例如:git add conflict_file.py);若所有冲突文件均已解决,也可用git add .一次性添加所有文件。
使用git commit -m "解决合并冲突"命令提交合并后的更改。提交信息需清晰描述冲突解决的内容(例如:“解决了feature分支与main分支的函数命名冲突”)。
使用git push origin 分支名命令将本地解决冲突后的分支推送到远程GitLab仓库。若之前是git pull触发的冲突,推送后会自动完成合并;若是在合并请求(Merge Request)中解决冲突,推送后会更新请求状态。
若不想通过命令行,也可通过GitLab的Web界面解决冲突:
git stash或创建新分支备份当前工作,避免误操作导致代码丢失;git pull),减少冲突发生的概率。