完全取消rebase

我进行了这样的rebase:

git rebase --onto master new_background_processing export_background_processing 

这没有做我想要的,所以我做了一个重置​​:

 git reset --hard HEAD@{1} 

我把我的分支恢复到原来的状态,但是当我inputgit status的时候我收到了这个消息:

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

我如何完全取消rebase? 不知道这是什么意思本身。

使用git rebase --abort 。 从git rebase的官方Linux内核文档 :

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

在过去你没有适当地放弃的情况下,你现在(git 2.12,2017年第一季度) git rebase --quit

见NguyễnTháiNgọcDuy( pclouds ) 提交的9512177 (2016年11月12日) 。 (由Junio C gitster合并- gitster – 提交06cd5a1 ,2016年12月19日)

rebase :添加 – 清理rebase,保持一切不变

有些时候,你决定放弃正在进行的重组,然后继续做别的事情,但是你忘了先做“ git rebase --abort或者你已经忘记了这个事情了。 当你意识到这一点的时候(比如开始另一个rebase),回到你的脚步已经太迟了。 解决scheme通常是

 rm -r .git/<some rebase dir> 

并继续你的生活。
但是可能有两个不同的目录用于<some rebase dir> (显然它需要一些关于rebase如何工作的知识),如果你不在top-dir或链接中,“. .git ”部分可能会更长worktree。 而“ rm -r ”在.git是非常危险的,那里面的错误可能会破坏对象数据库或其他重要数据。

为这个用例提供“ git rebase --quit ”,模仿一个“ git cherry-pick --quit ”的先例。

你很幸运,你没有完成rebase,所以你仍然可以做git rebase --abort 。 如果你完成了rebase( 重写历史 ),事情就会复杂得多。 在做潜在的破坏性操作(特别是历史重写)之前,考虑分支的提示,这样当某些事情发生时你可以倒带。