执行git rebase -i HEAD~3压缩提交报invalid upstream错误如何解决
Git rebase压缩提交时报错fatal: invalid upstream 'HEAD~3' 解决指南
报错原因
- 核心触发原因是当前分支的总提交数小于3:
HEAD~3代表当前HEAD指针往前追溯的第3个父提交,当分支提交总数不足3时,Git无法定位到该上游提交,因此抛出该错误。 - 少数场景下,当前处于游离HEAD(detached HEAD)状态且该状态下产生的提交数不足3时,也会触发该报错。
解决方法
- 先执行以下命令查询当前分支的提交总数和提交记录:
git log --oneline - 根据查询到的提交总数调整rebase命令:
- 若提交总数为2:将原命令调整为
git rebase -i HEAD~2,即可压缩最近2次提交 - 若提交总数为1(仅存在仓库初始提交):使用带--root参数的命令操作初始提交:
git rebase -i --root - 若提交总数≥3仍报错:执行
git branch确认是否处于游离HEAD状态,先切换到对应正常工作分支后再执行rebase命令即可
- 进入rebase交互界面后,把需要被合并的提交前的
pick改为squash(可简写为s),保存退出后即可完成提交压缩。
注意:如果压缩前的提交已经推送至远程仓库,压缩完成后需要执行
git push -f强制推送覆盖远程记录,操作前请确认同分支无其他协作人员的未提交代码,避免覆盖他人工作内容。
内容的提问来源于stack exchange,提问作者Sudhakar Lahane
相关产品推荐
相关产品推荐

