Git如何退出rebase模式

时间:2016-12-09 02:17:34

标签: git

我做了一个Git rebase,修复了冲突和强制已推,为什么它仍然是rebase模式,“dev | REBASE 2/3”?怎么退出呢?我不想丢掉这个篮板。

aaa@lenovo-pc MINGW64 ~/Documents/NetBeansProjects/GitTest1 (dev|REBASE 2/3)
$ git status
rebase in progress; onto f67f4c5
You are currently rebasing branch 'dev' on 'f67f4c5'.
  (all conflicts fixed: run "git rebase --continue")

nothing to commit, working tree clean

aaa@lenovo-pc MINGW64 ~/Documents/NetBeansProjects/GitTest1 (dev|REBASE 2/3)
$ git push --force origin dev
git@192.168.1.8's password:
Everything up-to-date

aaa@lenovo-pc MINGW64 ~/Documents/NetBeansProjects/GitTest1 (dev|REBASE 2/3)

由于

3 个答案:

答案 0 :(得分:17)

git rebase --abort

这应该适合你。

UPD:

git revert有点" atomic"操作。你无法在中间完成它。将其视为交易。它要么完成要么不完成。如果你认为你已经完成了,但你的工作副本仍然在" rebase"模式比意味着你做错了,即:

  • 使用git commit
  • 手动添加了提交
  • 如果是这样的话,没有解决冲突。通常,rebase是一个自动操作,您只需运行并观察,只有在冲突未解决时才会停止。

如何解决冲突?嗯,这是一个很好的单独问题。

答案 1 :(得分:1)

我一般发现,只需遵循在rebase过程中提示给你的说明,通常不会出错。根据您向我们展示的代码段,其中说:

(all conflicts fixed: run "git rebase --continue")

您的下一步可能应该是运行git rebase --continue来完成rebase,或者至少转移到下一个应用的提交。

现在该怎么做:

您强制将dev分支推送到远程,而不是完成/继续使用rebase。因为你可能不得不在反叛之后强行推动这个,所以我没有看到任何长期伤害。所以你应该通过

来完成rebase
git rebase --continue

然后在实际完成rebase后再次强制推送。

顺便说一句,如果你确定你真的想扔掉那个底板,你可以通过

这样做
git rebase --abort

答案 2 :(得分:0)

您可以通过以下命令git rebase --abort

退出rebase模式