Comment abandonner un rebase git depuis l'intérieur de vim pendant l'édition interactive

138

Quand je fais un rebase interactif, par exemple

git rebase -i HEAD~3

l'éditeur interactif rebase (vim dans mon cas) s'ouvre pour me permettre de modifier les commits à rebase

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

Si je décide maintenant que je veux abandonner le rebase et quitter vim en utilisant :qle rebase démarre quand même. J'utilise la version git 1.9.0.msysgit.0sur Windows.

Bien sûr, je peux simplement supprimer toutes les picklignes, mais cela pourrait être beaucoup à faire si je rebase un historique plus long. Y a-t-il un autre moyen?

Comment puis-je quitter l'éditeur interactif de rebase (vim) et abandonner le rebase?

René Link
la source
Préférez-vous utiliser un autre éditeur, tel que le Bloc-notes? Si oui, j'ai une solution pour cela
Steven Penny
5
git rebase --abort
vanduc1102
@ vanduc1102 Fonctionne pour moi, je souhaite que ce soit une réponse!
C Bauer

Réponses:

258

Si vous quittez l'éditeur avec un code d'erreur, le rebase sera abandonné.

Pour quitter avec un code d'erreur sur vim, faites

:cq

Voir ici et vimdoc ici .

Telmo Costa
la source
6
Moins de frappe, même résultat
Zach Posten
44

Supprimez simplement toutes les lignes qui ne sont pas des commentaires du fichier. Enregistrez-le ensuite dans le chemin fourni par défaut et quittez l'éditeur.

En conséquence, git ne fera rien dans ce rebase.

Pour supprimer toutes les lignes dans vim, vous pouvez utiliser

:%d|x

Puis enregistrez et quittez.

supprimer toutes les lignes de fichier dans Vim

Comment quitter l'éditeur Vim?

VIM - plusieurs commandes sur la même ligne

Steven Penny
la source
ce n'est pas le cas pour les validations de fusion. essayez de faire le rebase interactif pour inclure au moins un commit de fusion et comparez le résultat avec l'état d'origine.
Mladen B.
9

Si vous utilisez Notepad ++ sur Windows par exemple:

CtrlApour tout sélectionner, puis Delou Backspacepour supprimer et CtrlSenregistrer. Git abandonnera le rebase si le fichier est vide.

Vous pouvez également appuyer CtrlCsur l'invite de commande où git s'exécute pour arrêter la commande de rebase en cours. Ensuite, exécutez git rebase --abortpour le rétablir.

CodeManX
la source
c'est la manière générale de résoudre ce problème, peu importe si vous utilisez vim ou tout autre éditeur. Merci beaucoup! :)
Mladen B.
3

Supprimez tout le texte de l'écran de votre éditeur de texte, puis enregistrez le fichier avec le chemin d'accès fourni par défaut.

mcandre
la source