如何使用git rebase --onto高效将branch-B重设到branch-A基准?
解决
git rebase --onto重设分支基准的问题 正确命令
要实现你期望的结果,修正参数顺序即可,执行以下命令:
git checkout branch-B git rebase --onto branch-A origin/main
命令解释
git rebase --onto的核心逻辑是把指定范围内的提交,从旧基准移到新基准上,参数顺序至关重要:
--onto branch-A:指定新的基准目标,即让branch-B最终基于branch-A的最新提交(H')origin/main:作为上游参考,用来界定需要移动的提交范围——只选取branch-B中在origin/main之后的提交(也就是你的J'和K')- 当前分支为
branch-B,上述范围内的提交会被复制到branch-A的顶端
这样操作后,只会处理J'和K'提交的冲突,完全匹配你的需求。
验证与额外说明
- 执行前可先确认要移动的提交范围:
输出应仅包含git log --oneline origin/main..branch-BJ'和K'的提交记录,确保范围正确 - 如果
branch-B已推送到远程仓库,完成变基后需强制推送(推荐用--force-with-lease避免覆盖他人未同步修改):git push --force-with-lease origin branch-B
内容的提问来源于stack exchange,提问作者Nainpo
相关产品推荐
相关产品推荐

