Vale la pena agregar que necesita presionar Esc antes de ingresar :q!para salir de vim.
M_Merciless
Respuestas:
332
Tienes dos opciones:
Proporcione un mensaje de confirmación vacío. Si se trata de una nueva confirmación y aún no ha guardado el mensaje, simplemente puede usar :q!(salir sin guardar). Si ya ha guardado (o está modificando una confirmación anterior), simplemente elimine todo el mensaje de registro y vuelva a guardar. Esto se puede hacer con ggdG+ :wqen Vim.
Haga que el editor salga con un código de salida distinto de cero. En Vim, puede usar :cq(salir con un código de error).
Vale la pena señalar que siempre puede restablecer su copia de trabajo al estado en que estaba antes de la confirmación git reset HEAD^.
: cq es el negocio. Por alguna razón, git continúa, independientemente de si uso: q!
Sirex
2
git reset HEAD ^ descartaría modificaciones locales
juanmf
2
: q! probablemente no funciona porque ya hay un mensaje predefinido, solo lo está editando.
Papipo
Hipo: Si git reset HEAD^pide más, su shell puede interpretar ^ como continuación de línea. Intente git reset "HEAD^", git reset HEAD^^o en su git reset HEAD~1lugar, según esta respuesta: stackoverflow.com/questions/14203952/git-reset-asks-more
Jake Stevens-Haas
76
:q!no funciona cuando se modifica una confirmación. No actualiza el mensaje de confirmación, pero ejecuta la enmienda :-(
Desearía poder agregar otro +1. He estado aquí muchas veces cuando mi enmienda recoge la confirmación incorrecta.
Wyrmwood
8
Para resumir:
Al crear una nueva confirmación (es decir git commit), deje de usar :q!.
Al enmendar (es decir git commit --amend), elimine el mensaje de confirmación (solo las primeras filas que no comienzan con un #), por ejemplo, manteniendo presionado vy usando las teclas de flecha para seleccionarlo y luego presionando Eliminar. ¡Salga con :wqpara aplicar los cambios ! Si usa :q!los cambios, se perderán y se usará el mensaje de confirmación anterior.
Cuando se utiliza VIM, está bien dejarlo en ambos casos :cq: VIM se cerrará con un código de error y se anulará la confirmación.
:q!
para salir de vim.Respuestas:
Tienes dos opciones:
Proporcione un mensaje de confirmación vacío. Si se trata de una nueva confirmación y aún no ha guardado el mensaje, simplemente puede usar
:q!
(salir sin guardar). Si ya ha guardado (o está modificando una confirmación anterior), simplemente elimine todo el mensaje de registro y vuelva a guardar. Esto se puede hacer con ggdG+:wq
en Vim.Haga que el editor salga con un código de salida distinto de cero. En Vim, puede usar
:cq
(salir con un código de error).Vale la pena señalar que siempre puede restablecer su copia de trabajo al estado en que estaba antes de la confirmación
git reset HEAD^
.fuente
git reset HEAD^
pide más, su shell puede interpretar ^ como continuación de línea. Intentegit reset "HEAD^"
,git reset HEAD^^
o en sugit reset HEAD~1
lugar, según esta respuesta: stackoverflow.com/questions/14203952/git-reset-asks-more:q!
no funciona cuando se modifica una confirmación. No actualiza el mensaje de confirmación, pero ejecuta la enmienda :-(:cq
aborta completamente la enmienda.fuente
Para resumir:
git commit
), deje de usar:q!
.git commit --amend
), elimine el mensaje de confirmación (solo las primeras filas que no comienzan con un #), por ejemplo, manteniendo presionado vy usando las teclas de flecha para seleccionarlo y luego presionando Eliminar. ¡Salga con:wq
para aplicar los cambios ! Si usa:q!
los cambios, se perderán y se usará el mensaje de confirmación anterior.Cuando se utiliza VIM, está bien dejarlo en ambos casos
:cq
: VIM se cerrará con un código de error y se anulará la confirmación.fuente