解决代码冲突小记

前情摘要

最近在编写工作用偷懒小代码,仓库项目存在两个分支, devmaster 分支,由于无聊且想要熟悉下Git的使用技巧,因此对 master 分支设置了分支保护,至此,本篇水文出现。

详细描述……

分支保护的愁与泪

由于开启了分支保护,所以通过使用Git命令无法直接push到 master 分支,因此,所有的更改都需要通过先推送到 dev 分支,由 dev 分支发起PR请求后才能将代码合并到 master 分支,但是常规PR解决都是最终要推送master分支上的,(可能是我孤陋寡闻,或者Gitee是这么推荐的。。。),由于分支保护,因此此条路径不通,遂问DeepSeek。

DeepSeek问询语

1
现在存在问题:dev分支代码是最新的,master分支代码是老代码,现在dev分支代码PR推送master分支存在冲突,并且master分支有分支保护(不能通过直接push推送到该分支,只能通过PR进行合并),如何进行解决如何进行更新解决该冲突。

解决方法

  1. 拉取最新代码到本地
    1
    2
    3
    4
    5
    # 切换到master分支并拉取最新代码
    git checkout master
    git pull origin master
    # 切换回dev分支
    git checkout dev
  2. 将master合并到dev分支(解决冲突的核心步骤
    1
    2
    # 在dev分支合并master的更新
    git merge master
    此时会出现冲突提示(类似 CONFLICT (content): Merge conflict in <文件名>
  3. 解决冲突
    选择保留需要的代码(或合并两者),删除 <<<<<<</=======/>>>>>>> 标记
    对每个冲突文件重复此操作
  4. 提交合并结果并推送远端分支
    1
    2
    3
    4
    5
    # 标记冲突已解决
    git add <解决后的文件> # 或 git add . 添加所有
    # 提交合并结果(不要修改默认信息)
    git commit -m "Merge master into dev to resolve PR conflicts"
    git push origin dev
    这会自动更新已有的PR(PR会实时跟踪dev分支的新提交)
  5. 完成PR合并请求
    之后便可在平台上对已有PR进行后续操作

尾言

继续问询

由于Gitee的教学是本地解决master分支代码冲突问题,因此又好奇问了一下DS,DS讲述如下:

特性 你提到的命令序列 推荐的解决方案
目标 直接修改master分支 通过PR合规更新
操作位置 在master分支操作 在dev分支操作
合规性 ❌ 违反分支保护策略 ✅ 符合分支保护策略
冲突解决 在本地master解决 在dev分支解决
推送目标 直接推master 推dev分支更新PR
团队协作 破坏协作流程 保持完整PR流程
审计历史 绕过代码审查 保留PR审查记录

Gitee …… 6

参考资料

鸣谢DeepSeek