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

如何基于未合并特性分支创建新分支,避免squash merge冲突

问题解答

当然可以基于未被squash merge到main的特性分支A创建分支B继续开发,只要后续操作得当,就不会在A被合并到main后引发问题。具体操作步骤如下:

  • 创建分支B
    直接从分支A切出新分支B,执行命令:

    git checkout -b B A
    

    这样分支B就完整继承了A的所有改动,可以正常在上面继续开发。

  • A被squash merge到main后,同步分支B
    由于squash merge会把A的所有提交压缩成一个全新的提交放到main上,A的原始提交历史和main是完全独立的。如果直接合并main到B,Git会误判A的改动是未合并的新内容,导致冲突或重复提交。正确的做法是对B执行变基操作:

    1. 切换到分支B:
      git checkout B
      
    2. 拉取远程最新的main分支:
      git fetch origin main
      
    3. 将B变基到最新的main上:
      git rebase origin main
      

    过程中如果遇到冲突,手动解决冲突后执行git add .,再用git rebase --continue继续变基,直到完成。

  • 后续合并B到main
    变基完成后,B的提交历史会基于最新的main重新排列,此时无论是用普通合并还是squash merge将B合并到main,都不会出现重复提交或不必要的冲突。

注意:如果有其他团队成员也在操作分支B,变基后需要执行git push -f origin B强制推送,操作前务必和团队成员沟通,避免他人的本地提交丢失。

内容的提问来源于stack exchange,提问作者Arnoud van der Leer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 18:49:58