Abortar un git cherry-pick?

389

Corrí git cherry-pick <hash>y tuve conflictos de fusión. No quiero resolver los conflictos, solo quiero abortar la selección de cereza. Al hacer una fusión real (con git merge) hay lo útil git merge --abort. ¿Cuál es el equivalente para la recolección de cerezas?

agmin
fuente

Respuestas:

602

Puedes hacer lo siguiente

git cherry-pick --abort

De los git cherry-pickdocumentos

--abort  

Cancele la operación y regrese al estado de pre-secuencia.


fuente
66
¿Se ha eliminado / agregado la opción --abort en una versión específica de git? Estoy ejecutando git 1.7.4.1 y "git cherry-pick --abort" da como resultado un mensaje de uso de git cherry-pick. También busqué "git help cherry-pick" por "abortar" y no encontré nada.
danns87
1
@ danns87 la --abortopción estuvo disponible en la versión 1.7.8 . ¿Es posible para usted actualizar?
44
Sí, esto no funciona. La mayoría de las veces me sale esto error: Entry '<unstaged file>' not uptodate. Cannot merge. Por otro lado, git reset --merge¡funciona!
kumarharsh
@KumarHarsh, ¿qué versión de Git estás usando?
1
> 1.8. En realidad, fue debido a archivos sucios en el directorio. Pero el git reset --mergecomando funciona incluso entonces.
kumarharsh
73

Encontré que la respuesta es git reset --merge: despeja el intento conflictivo de selección de cereza.

agmin
fuente
44
¿Es diferente de git reset --hard? Estoy usando el flujo de trabajo de rebase, en todo caso. Parece funcionar para mí.
x-yuri
3
¿Cuál es la diferencia entre --mergey --abort?
ffghfgh
8

Para mí, la única forma de restablecer el intento fallido de selección de cereza fue

git reset --hard HEAD
Diego P. Steiner
fuente
Esto no responde la pregunta y solo sugiere una operación que probablemente destruya datos.
Martinkunev
2

Pruebe también con la opción '--quit', que le permite abortar la operación actual y borrar aún más el estado del secuenciador.

--quit Olvídate de la operación actual en progreso. Se puede utilizar para borrar el estado del secuenciador después de una selección de cereza fallida o revertir.

--abort Cancele la operación y regrese al estado de pre-secuencia.

use la ayuda para ver el documento original con más detalles, $ git help cherry-pick

Evitaría 'git reset --hard HEAD' que es demasiado duro y podrías terminar haciendo un trabajo manual.

Yu Chen
fuente
Eso no debería existir. Git es lo suficientemente complicado sin dos formas de cancelar una selección de cereza que tienen efectos sutilmente diferentes en el estado de repositorio.
Kaz
Es cierto, no me da ningún error, pero no sale completamente del estado del comando.
Yu Chen el