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

仓库合并操作失误后,如何正确合并FeatureBranch到Dev分支?

问题背景

我们的长期发布分支为Dev(非Master分支),另有一个包含多次提交与推送的旧分支FeatureBranch,操作中出现以下混乱:

  • 误将Dev合并到FeatureBranch(提交ID:d5de75c),解决冲突后完成操作
  • 将FeatureBranch回退至错误合并前的状态
  • 通过Bitbucket拉取请求将FeatureBranch合并到Dev(提交ID:78e4c0f),无冲突但疑似撤销了Dev上的提交,推测是FeatureBranch的回退提交导致
  • 已回退此次合并操作(提交ID:ae2bf73)

当前本地FeatureBranch已重置到提交f0e83d1,Git日志如下:

*   ae2bf73 (origin/Dev, Dev) Merged in undo22 (pull request #23)
 |\  
 | * d0292f4 (origin/undo22) Revert "Merge FeatureBranch to Dev (pull request #22)"
 |/  
 *   78e4c0f Merged in FeatureBranch (pull request #22)
 |\  
 | * 3c2f132 (origin/FeatureBranch) Re-adding accidentally reverted change.
 | * f586c2e Revert "Merge branch 'Dev' into FeatureBranch"
 | * e996bcc Revert "#IC-67 #IC-179 [Redacted]"
 | *   d5de75c Merge branch 'Dev' into FeatureBranch
 | |\  
 | * | f0e83d1 (HEAD -> FeatureBranch) #IC-67 #IC-179 [Redacted]

需找到将FeatureBranch合并到Dev的最优方案,倾向于强制推送回混乱前状态再合并,但希望尽量避免强制推送;团队规模小,本地改动极少,可接受远程仓库历史变更。


方案一:允许强制推送的最优方案(推荐)

结合团队现状,这种方式最直接干净:

  1. 确认本地FeatureBranch已处于正确的目标提交f0e83d1(当前已满足)
  2. 用安全强制推送覆盖远程FeatureBranch:
    git push origin FeatureBranch --force-with-lease
    
    --force-with-lease比直接--force更安全,能避免意外覆盖他人未同步的改动
  3. 在Bitbucket重新创建从FeatureBranch到Dev的拉取请求,正常合并即可

方案二:避免强制推送的替代方案

如果不想修改远程分支历史,可通过以下两种方式处理:

方式1:变基清理FeatureBranch

  1. 拉取Dev分支最新代码:
    git checkout Dev
    git pull origin Dev
    
  2. 切换到FeatureBranch,将f0e83d1的有效改动移到Dev最新提交之后:
    git checkout FeatureBranch
    git rebase --onto Dev d5de75c^ FeatureBranch
    
    这条命令会丢弃FeatureBranch上从d5de75c开始的所有混乱提交,只保留错误合并前的有效改动
  3. 解决可能出现的冲突,完成变基后推送到远程:
    git push origin FeatureBranch
    
    注:变基修改了分支历史,这里大概率仍需添加--force-with-lease,但影响范围比直接强制推送更小

方式2:创建干净新分支替代

  1. 基于正确的提交f0e83d1创建新分支:
    git checkout f0e83d1
    git checkout -b FeatureBranch-Clean
    
  2. 推送到远程仓库:
    git push origin FeatureBranch-Clean
    
  3. 用新分支创建到Dev的拉取请求,合并完成后可删除旧的FeatureBranch

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:13:02