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

如何删除test_branch除最新提交外的所有提交以避免git rebase冲突?

解决方案

前置检查

执行git status确认当前test_branch的工作区、暂存区没有未提交的修改,避免操作过程中丢失代码内容。

可选操作:备份当前分支

为避免操作失误丢失历史内容,先给当前test_branch生成本地备份:
git branch test_branch_backup
后续如果操作出错,可以直接从备份分支恢复原有内容。

步骤1:同步本地master的最新代码

git checkout master
git pull origin master
git checkout test_branch

保证本地master是和远程一致的最新版本。

步骤2:软重置分支到master节点

执行以下命令,将test_branch的HEAD指针指向最新的master节点,同时保留你在test_branch上的所有代码修改到暂存区:
git reset --soft master

步骤3:生成单条汇总提交

此时test_branch和master的所有差异都已经在暂存区,直接提交即可生成唯一的新提交:
git commit -m "填写你的提交说明,汇总test_branch的所有修改"

步骤4:强制推送更新远程PR

因为修改了分支的提交历史,需要强制推送覆盖远程的test_branch,GitHub上对应的开放PR会自动更新为当前的单条提交,无需新建PR:
git push -f origin test_branch

注意事项

  • 操作完成后test_branch仅存在1条和master无交叉历史的新提交,后续同步master变更时仅需要解决一次冲突,不需要逐个提交处理。
  • 该操作仅修改test_branch的提交历史,不会影响master分支的内容。
  • 如果有其他协作者共同使用test_branch,操作前需要同步所有协作者,避免其他人的本地分支和重置后的远程分支产生历史冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:00:01