完全取消rebase

时间:2014-03-09 22:55:32

标签: git

我执行了这样的rebase:

git rebase --onto master new_background_processing export_background_processing

那没有做我想要的,所以我进行了重置:

git reset --hard HEAD@{1}

我让我的分支恢复到原来的状态,但是当我输入git status时收到了这条消息:

# You are currently rebasing branch 'export_background_processing' on 'e378641'.

如何完全取消该基础?不确定这本身就意味着什么。

4 个答案:

答案 0 :(得分:252)

使用git rebase --abort。来自official Linux kernel documentation for git rebase

git rebase --continue | --skip | --abort | --edit-todo

答案 1 :(得分:52)

如果你没有正确中止过去的rebase,你现在(Git 2.12,2017年第一季度)有git rebase --quit

commit 9512177查看Nguyễn Thái Ngọc Duy (pclouds)(2016年11月12日)。 Junio C Hamano -- gitster --合并于commit 06cd5a1,2016年12月19日)

  

rebase:添加--quit以清理rebase,保持其他所有内容不受影响

     

在某些情况下,您决定中止正在进行的rebase和   继续做其他事情,但你忘记做“git rebase --abort”   第一即可。 或者,在你忘记这么长时间之后,rebase一直在进行中   它。当你意识到这一点时(例如,通过启动另一个rebase)   追溯你的步骤已经太晚了。解决方案通常是

rm -r .git/<some rebase dir>
     

继续你的生活。
  但是<some rebase dir>可能有两个不同的目录(显然需要了解rebase如何工作),如果你不在顶层,那么“.git”部分可能要长得多,或者在链接的工作树中。并且“rm -r”在.git中非常危险,可能会破坏对象数据库或其他重要数据。

     

为此用例提供“git rebase --quit”,模仿先例   这是“git cherry-pick --quit”。

答案 2 :(得分:9)

你很幸运,你没有完成变基,所以你仍然可以git rebase --abort。如果你已经完成了rebase(它重写了历史),事情就会复杂得多。在进行潜在的破坏性操作(特别是历史记录重写)之前,请考虑标记分支的提示,这样就可以在出现问题时进行倒带。

答案 3 :(得分:2)

如果您要取消,正在“重新设置” “已开始重新设置基准” ,只需对全部(#)进行注释提交在rebase编辑器中列出的内容。

因此,您将收到命令行消息

Nothing to do