误从错误分支创建特性分支,如何将其迁移至正确分支?
迁移特性分支到正确的基础分支
方法一:使用变基(Rebase,推荐)
该方法会直接重构B分支的提交历史,使其基于C分支,最终完全匹配目标结构。
- 更新本地所有分支至最新状态
git fetch origin git checkout A && git pull git checkout C && git pull git checkout B && git pull
- 将B分支变基到C分支
git checkout B git rebase C
- 处理冲突(若出现)
Git遇到冲突会暂停变基,此时手动修改冲突文件后执行:
git add . git rebase --continue
若需放弃变基操作,执行:
git rebase --abort
- 验证分支结构
运行以下命令查看提交历史,确认B分支已基于C分支:
git log --oneline --graph
- 推送远程分支(若B已推送到远程)
因变基修改了提交历史,需强制推送,推荐用--force-with-lease避免意外覆盖他人提交:
git push origin B --force-with-lease
方法二:使用 Cherry-Pick(适合提交较少的场景)
如果B分支上的提交数量不多,可以逐个复制提交到C分支之上。
- 更新本地分支并切换到C分支
git fetch origin git checkout C && git pull
- 基于C分支创建新的特性分支
git checkout -b B-new
- 复制B分支的提交到新分支
先查看B分支中所有基于A分支的提交哈希:
git log B --not A --oneline
然后逐个复制这些提交:
git cherry-pick <提交哈希1> <提交哈希2> ...
遇到冲突时,解决后执行:
git add . git cherry-pick --continue
- 替换原B分支
git branch -m B B-old git branch -m B-new B
- 推送新的B分支到远程
git push origin B --force-with-lease # 如需删除远程旧分支,执行: git push origin :B-old
内容的提问来源于stack exchange,提问作者SaHiL
相关产品推荐
相关产品推荐

