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

如何Rebase从别处复制的Git特性分支以保留主分支提交历史?

Git特性分支历史重写:基于主分支Rebase的解决方案

问题背景

我开发的一条特性分支(红线)是从别处复制而来,而非从主开发分支克隆。我的需求是保留主分支的提交历史(即重写特性分支的历史)。
分支关系示意图

请问是否可以将该特性分支的变更Rebase到原始主分支以实现此目的,或是有其他可行方案?我担心操作中会遇到无法解决的持续冲突。

已验证解决方案

可以通过git rebase实现需求,具体步骤如下:

  1. 切换到目标特性分支
git checkout feature-branch
  1. 执行rebase,将特性分支的提交基于主开发分支重放
git rebase main-branch
  1. 遇到冲突时,手动打开冲突文件解决代码差异,完成后标记文件为已解决
git add <冲突文件名>
  1. 继续执行rebase直到全部完成
git rebase --continue

完成上述操作后,特性分支的提交历史会被重写,完全基于主开发分支的历史构建。之后可以将该特性分支克隆为新的开发主分支:

git checkout -b new-development-main

注:冲突是rebase过程中的正常情况,逐次手动解决即可——每次冲突处理完成后继续rebase,后续冲突只会是未处理过的代码差异,耐心处理就能完成整个流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 15:27:37