You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git分支发起Pull Request时混入其他分支变更的问题及修复

问题修复方案

第一步:确认问题根源

先通过以下命令明确分支间的关联和变更状态:

  • 拉取远程仓库最新状态:git fetch origin
  • 检查branch-topic-95的变更是否已合并到远程staging:git log origin/staging --oneline | grep <branch-topic-95的提交ID或关键词>
  • 查看分支提交历史对比:git log --graph --oneline branch-topic-100 origin/staging

大概率是你的topic分支创建时基准选错(基于branch-topic-95而非staging),或是branch-topic-100的PR错误将95的变更带入了staging分支。

第二步:针对性修复问题

场景1:branch-topic-100的PR尚未合并到staging

  1. 切换到问题分支:git checkout branch-topic-100
  2. 基于最新远程staging创建干净分支:
    git checkout -b branch-topic-100-clean origin/staging
    # 将原分支的专属变更逐一复制到新分支
    git cherry-pick <branch-topic-100的第一个专属提交ID>..<最后一个专属提交ID>
    
  3. 用新分支替换原PR的关联分支,关闭旧PR即可。

场景2:branch-topic-100的PR已合并,导致staging混入95的变更

  1. 切换到staging分支并拉取最新代码:git checkout staging && git pull origin staging
  2. 回滚branch-topic-95的变更:
    • 若PR是通过合并提交进入staging:git revert -m 1 <合并提交的ID>(-m 1表示保留staging原有历史)
    • 若95的变更是单个提交:git revert <branch-topic-95的提交ID>
  3. 将回滚后的staging推送到远程:git push origin staging

第三步:规范后续分支创建流程

之后新建topic分支时,必须基于最新的远程staging,执行命令:

git fetch origin
git checkout -b branch-topic-new origin/staging

第四步:清理冗余分支

删除不再需要的旧分支:

  • 本地分支:git branch -D branch-topic-100 branch-topic-95
  • 远程分支(确认无用后):git push origin --delete branch-topic-95

内容的提问来源于stack exchange,提问作者Adnan.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 20:10:36