如何使用git rebase将本地提交移动到origin/main对应提交之上?
操作方案
不需要提前执行switch或者checkout命令切换到BBBBB,你当前已经处于待操作的main分支上,直接执行rebase命令即可达到目标效果。
具体步骤
- (可选校验)执行
git branch确认当前分支为main,输出中main前带*标记即符合要求,和你当前git tree显示的HEAD指向一致。 - 执行以下rebase命令,指定基提交为BBBBB对应的引用即可:
# 用远程分支名作为基提交引用 git rebase origin/main # 也可以用tag名指定基提交,效果完全一致 # git rebase fubar
原理解释
上述命令会将当前main分支上,和origin/main的共同祖先AAAAA之后的提交(也就是你的CCCCC)摘出,逐一应用到origin/main指向的BBBBB提交之上,最终生成你需要的线性提交链。
异常处理
- 如果rebase过程中出现文件冲突,修改完冲突文件后执行
git add <冲突文件名>标记冲突已解决,再执行git rebase --continue即可完成剩余操作。 - 若中途需要放弃本次rebase,执行
git rebase --abort即可回到操作前的仓库状态。
内容的提问来源于stack exchange,提问作者WhiskerBiscuit
相关产品推荐
相关产品推荐

