Como cancelar uma rebase do git de dentro do vim durante a edição interativa

138

Quando eu faço um rebase interativo, por exemplo,

git rebase -i HEAD~3

o editor interativo rebase (vim no meu caso) é aberto para permitir que eu edite as confirmações para rebase

pick c843ea2 Set Vim column limit to 80 (OS X)
pick fc32eac Add Bash alias for `pbcopy` (OS X)
....

Se agora eu decidir que quero abortar o rebase e sair do vim usando :qo rebase, inicia assim mesmo. Estou usando a versão git 1.9.0.msysgit.0no Windows.

Claro que posso excluir todas as picklinhas, mas pode ser muito o que fazer se refazer um histórico mais longo. Existe outro caminho?

Como posso sair do editor interativo rebase (vim) e abortar a rebase?

René Link
fonte
Você prefere usar um editor diferente, como o Bloco de Notas? Se assim for, eu tenho uma solução para isso
Steven Penny
5
git rebase --abort
precisa saber é o seguinte
@ vanduc1102 Funciona para mim, gostaria que fosse uma resposta!
C # Bauer #

Respostas:

257

Se você sair do editor com um código de erro, a rebase será abortada.

Para sair com um código de erro no vim, faça

:cq

Veja aqui e vimdoc aqui .

Telmo Costa
fonte
6
Menos digitação, mesmo resultado
Zach Posten
44

Apenas exclua todas as linhas que não são comentários do arquivo. Em seguida, salve-o no caminho fornecido padrão e saia do editor.

Como resultado, o git simplesmente não fará nada nessa rebase.

Para excluir todas as linhas no vim, você pode usar

:%d|x

Em seguida, salve e saia.

excluir todas as linhas de arquivo no Vim

Como sair do editor Vim?

VIM - vários comandos na mesma linha

Steven Penny
fonte
esse não é o caso dos commits de mesclagem. tente fazer o rebase interativo para incluir pelo menos uma confirmação de mesclagem e comparar o resultado com o estado original.
Mladen B.
9

Se você estiver usando o Notepad ++ no Windows, por exemplo:

CtrlApara selecionar tudo e, em seguida, Delou Backspacepara excluir e CtrlSsalvar. O Git abortará a rebase se o arquivo estiver vazio.

Você também pode clicar CtrlCno prompt de comando em que o git está sendo executado para interromper o comando rebase atual. Em seguida, corra git rebase --abortpara revertê-lo.

CodeManX
fonte
esta é a maneira geral de resolver esse problema, não importa se você estiver usando o vim ou qualquer outro editor. Muito obrigado! :)
Mladen B.
3

Exclua todo o texto na tela do editor de texto e salve o arquivo com o caminho fornecido padrão.

mcandre
fonte