首页/开发/Git 与协作速查/git rebase --onto 精确搬移提交
合并变基与冲突71 条

git rebase --onto 精确搬移提交

用 --onto 指定新基线与起点,把一段提交从旧位置搬到新位置;典型用途是把误开在错误分支上的提交摘出来。

Git 与协作速查开发更新于 2026-10-12
语法git rebase --onto <新基线> <旧基点> <分支>
范围重放 (旧基点, 分支] 区间内的提交
常见场景把特性提交从 A 移接到 B

常用示例

常用示例
git switch feature
# 把 feature 上「分叉自 main 之后」的提交搬到 develop
git rebase --onto develop $(git merge-base main feature)
git log --oneline --graph -12

三参数写法

三参数写法
git rebase --onto develop main feature
先用 git log --oneline <旧基点>..<分支> 预览将被搬移的提交集合,再执行变基。

易错点

  • 范围参数写反会把整条分支历史重放一遍,执行前一定用 log 预览集合
  • 原分支需保留时先建备份分支,出问题可用 reflog 或备份回退

数据来源与参考

  • Git 官方文档:git-rebase(--onto)
  • Pro Git 2nd Edition · 3.6 变基
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌