Cómo abortar un rebase git desde dentro de vim durante la edición interactiva

138

Cuando hago un rebase interactivo, p. Ej.

git rebase -i HEAD~3

el editor interactivo rebase (vim en mi caso) se abre para permitirme editar los commits para rebase

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

Si ahora decido que quiero abortar el rebase y dejar vim, el uso :qdel rebase comienza de todos modos. Estoy usando la versión git 1.9.0.msysgit.0en windows.

Claro que puedo eliminar todas las picklíneas, pero podría ser mucho si vuelvo a crear un historial más largo. ¿Hay otra manera?

¿Cómo puedo salir del editor interactivo rebase (vim) y cancelar el rebase?

René Link
fuente
¿Prefieres usar un editor diferente, como el Bloc de notas? Si es así, tengo una solución para eso
Steven Penny, el
55
git rebase --abort
vanduc1102
@ vanduc1102 Funciona para mí, ¡desearía que fuera una respuesta!
C Bauer

Respuestas:

258

Si sale del editor con un código de error, la nueva versión se cancelará.

Para salir con un código de error en vim, haga

:cq

Ver aquí y vimdoc aquí .

Telmo Costa
fuente
66
Menos tipeo, mismo resultado
Zach Posten
44

Simplemente elimine todas las líneas que no son comentarios del archivo. Luego guárdelo en la ruta de acceso predeterminada y salga del editor.

Como resultado, git simplemente no hará nada en este rebase.

Para eliminar todas las líneas en vim puedes usar

:%d|x

Luego guardar y salir.

eliminar todas las líneas de archivo en Vim

¿Cómo salir del editor Vim?

VIM: múltiples comandos en la misma línea

Steven Penny
fuente
Este no es el caso para los commits de fusión. intente realizar el rebase interactivo para incluir al menos una confirmación de fusión y compare el resultado con el estado original.
Mladen B.
9

Si está utilizando Notepad ++ en Windows, por ejemplo:

CtrlApara seleccionar todo, luego Delo Backspacepara eliminar y CtrlSguardar. Git abortará el rebase si el archivo está vacío.

También puede presionar CtrlCen el símbolo del sistema donde se ejecuta git para detener el comando de rebase actual. Luego corre git rebase --abortpara revertirlo.

CodeManX
fuente
Esta es la forma general de resolver este problema, sin importar si está utilizando vim o cualquier otro editor. ¡muchas gracias! :)
Mladen B.
3

Elimine todo el texto en la pantalla del editor de texto, luego guarde el archivo con la ruta de acceso predeterminada.

mcandre
fuente