将Fork仓库分支rebase到upstream master时出现usage报错如何解决?
问题原因
你遇到的rebase用法提示报错,最常见的原因是本地存在未完成的rebase进程,git禁止在已有正在进行的rebase操作时启动新的rebase任务。你执行的git fetch upstream可以正常拉取上游最新代码,是因为fetch操作和rebase进程互不冲突,只有到执行rebase步骤的时候才会触发校验报错。
解决步骤
先确认是否存在进行中的rebase任务
你可以查看本地仓库.git目录下是否存在rebase-merge或rebase-apply文件夹,只要存在其中一个,就说明有未结束的rebase操作。处理未完成的rebase,根据你的实际需求选择对应命令执行:
- 要彻底放弃之前未完成的rebase,恢复到操作前的分支状态:执行
git rebase --abort - 之前的rebase已经解决完所有冲突,要继续推进完成:执行
git rebase --continue - 想要跳过当前触发冲突的补丁,继续执行后续rebase步骤:执行
git rebase --skip
- 重新执行变基操作
处理完未完成的rebase后,先确认你已经切换到需要变基的自定义分支:
git checkout 你的自定义分支名称
再执行你原本的变基命令即可,两种方式都可以:
- 合并命令:
git pull --rebase upstream master - 拆分命令:先执行
git fetch upstream,再执行git rebase upstream/master
其他罕见情况排查
如果按上面步骤操作后还是报错,检查你输入的命令里是否存在输入法误输入的全角空格、不可见特殊字符,重新手动输入命令即可。
内容的提问来源于stack exchange,提问作者Igor
相关产品推荐
相关产品推荐

