Come interrompere un git rebase dall'interno di VIM durante l'editing interattivo


138

Quando eseguo un rebase interattivo, ad es

git rebase -i HEAD~3

l'editor interattivo rebase (vim nel mio caso) si apre per consentirmi di modificare gli commit per rebase

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

Se ora decido che voglio interrompere il rebase e uscire da Vim usando :qil rebase inizia comunque. Sto usando la versione git 1.9.0.msysgit.0su Windows.

Certo, posso solo eliminare tutte le pickrighe, ma potrebbe essere molto da fare se rifaccio una cronologia più lunga. C'è un altro modo?

Come posso chiudere l'editor interattivo rebase (vim) e interrompere il rebase?


Preferiresti utilizzare un editor diverso, come Blocco note? Se è così, ho una soluzione per questo
Steven Penny,

5
git rebase --abort
vanduc1102,

@ vanduc1102 Funziona per me, vorrei che fosse una risposta!
C Bauer,

Risposte:


258

Se si esce dall'editor con un codice di errore, il rebase verrà interrotto.

Per uscire con un codice di errore su vim, fare

:cq

Vedi qui e vimdoc qui .


6
Meno battitura a macchina, stesso risultato
Zach Posten,

44

Elimina tutte le righe che non sono commenti dal file. Quindi salvalo nel percorso predefinito fornito ed esci dall'editor.

Di conseguenza, Git non farà nulla in questo rebase.

Per eliminare tutte le righe in vim puoi usare

:%d|x

Quindi salva ed esci.

elimina tutte le righe del file in Vim

Come uscire dall'editor Vim?

VIM: più comandi sulla stessa riga


questo non è il caso degli commit di merge. prova a eseguire il rebase interattivo per includere almeno un commit di unione e confronta il risultato con lo stato originale.
Mladen B.

9

Se ad esempio stai usando Notepad ++ su Windows:

CtrlAper selezionare tutto, quindi Delo Backspaceper eliminare e CtrlSsalvare. Git interromperà il rebase se il file è vuoto.

Puoi anche premere CtrlCnel prompt dei comandi in cui git è in esecuzione per interrompere il comando rebase corrente. Quindi corri git rebase --abortper ripristinarlo.


questo è il modo generale per risolvere questo problema, non importa se stai usando vim o qualsiasi altro editor. molte grazie! :)
Mladen B.

3

Elimina tutto il testo nella schermata dell'editor di testo, quindi salva il file con il percorso predefinito fornito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.