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

如何从提交日志中清理合并提交?(多分支协作场景)

合并topic分支到master的两种实用方案

根据你的分支演进情况(topic分支多次同步master,拥有独立的功能开发提交),这里有两种主流的合并方式,适配不同的历史记录需求:

方案一:保留完整分支轨迹的普通合并

如果希望完整保留topic分支的开发全过程(包括每次同步master的记录),可以直接使用普通合并:

  • 切换到master分支:
    git checkout master
    
  • 确保master分支处于最新状态(如果关联了远程仓库,先拉取最新代码):
    git pull origin master
    
  • 合并topic分支到master:
    git merge topic
    
  • 如果出现代码冲突,手动解决冲突后,执行以下命令完成合并:
    git add .
    git merge --continue
    

优点:完整保留了分支的所有操作历史,便于回溯每次master同步的时间点和具体内容。
缺点:master分支的提交日志会包含多个Merge master to topic类型的合并记录,整体显得相对繁琐。

方案二:生成线性整洁历史的变基合并

如果希望master分支的提交日志更简洁、呈现线性的功能迭代轨迹,推荐先对topic分支变基,再完成合并:

  • 切换到topic分支:
    git checkout topic
    
  • 将topic分支的提交变基到最新的master分支上(相当于把你的所有功能提交“平移”到master的最新提交之后):
    git rebase master
    
    • 变基过程中如果遇到冲突,解决冲突后执行:
      git add .
      git rebase --continue
      
    • 如果需要中途放弃变基,执行:
      git rebase --abort
      
  • 变基完成后,切换回master分支:
    git checkout master
    
  • 执行快进合并(此时topic的提交都在master提交序列之后,不会产生新的合并提交):
    git merge topic
    

优点:master分支的提交日志会呈现清晰的线性功能提交序列,没有多余的合并记录,非常整洁。
注意事项:变基会改写topic分支的提交历史,如果该分支已经推送给其他协作开发者,需要谨慎操作(强制推送会覆盖远程分支历史);但你的场景是独立开发的topic分支,完全可以放心使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:22:57