如何将分支提交复制到新分支并使其基于main分支?
实现分支复制并变基到main的简便方法
针对你的需求,有一套简单的命令流程可以完成,适合Git新手操作:
步骤1:确保本地main分支是最新版本
先切换到main分支并拉取最新代码(避免基于旧版本的main操作):
git checkout main git pull
步骤2:复制branch A创建branch B
直接基于branch A创建新分支branch B,这样branch B会完全继承branch A的所有提交历史:
git checkout -b branchB branchA
- 解释:
-b branchB表示创建并切换到新分支branchB,后面的branchA指定新分支的基础是branchA。
步骤3:将branch B变基到main分支
现在把branch B的提交(D、E)重新基于main分支的最新提交(C)构建:
git rebase main
执行后,branch B的提交就会变成D'、E',且基于main分支,同时原branch A的提交历史不会被改动。
关于你之前操作失败的原因
你提到用git checkout复制后用--onto参数rebase没拿到所有提交,大概率是rebase --onto的参数顺序错了。对新手来说,分开执行上面的步骤2和步骤3更直观,不容易出错,也更容易理解每一步的作用。
内容的提问来源于stack exchange,提问作者LYNllow
相关产品推荐
相关产品推荐

