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

如何仅推送分支B的新变更,排除未合并分支A的提交?

仅推送分支B新增变更到远程的操作方法

1. 先确认目标提交

切换到分支B,查看所有仅属于B的新增提交(即分支B相对于分支A的变更):

git checkout B
git log A..B

输出的提交记录就是你需要单独推送的内容。

2. 方法一:用Cherry-pick创建干净分支推送

如果需要把变更推送到不包含分支A提交的远程分支,按以下步骤操作:

  • 切换到主分支(如main/master):
    git checkout main
    
  • 创建新的干净分支:
    git checkout -b B-clean
    
  • 将B的新增提交迁移到新分支:
    # 若提交数量少,可逐个指定哈希;批量迁移直接用范围
    git cherry-pick A..B
    
    若遇到冲突,解决后执行git cherry-pick --continue,或用git cherry-pick --abort取消操作。
  • 推送新分支到远程:
    git push origin B-clean
    

3. 方法二:调整分支B基线后推送(需谨慎)

如果想直接推送分支B,但要剔除分支A的提交,可通过变基调整分支基线:

  • 切换到分支B:
    git checkout B
    
  • 交互式变基到主分支:
    git rebase -i main
    
    在弹出的编辑器中,保留分支B的新增提交,删除分支A的提交记录,保存退出完成变基。
  • 强制推送到远程(仅在远程分支无其他开发者使用时执行):
    git push -f origin B
    

注意事项

  • 若直接推送原分支B,会包含分支A的所有未合并提交,不符合需求,务必先分离目标变更。
  • 强制推送会覆盖远程分支历史,协同开发场景下需提前确认无其他使用者。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 20:12:46