2012-09-13 6 views
31

Ayer elegí dos commits en mi rama principal, uno de ellos causó conflictos de fusión y los resolví, los comprometí y los llevé a su origen. Hoy estoy tratando de tirar desde el servidor cuando me sale el siguiente error:¿Cómo concluir un Git Cherry-Pick?

$ git pull 
fatal: You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists). 
Please, commit your changes before you can merge. 
$ 

estado Git lee:

$ git status 
# On branch main 
# Your branch is behind 'origin/main' by 2 commits, and can be fast-forwarded. 
# 
$ 

he intentado lo siguiente en vano:

$ git cherry-pick --continue 
usage: git cherry-pick [options] <commit-ish> 
$ 

¿Alguna idea sobre cómo podría resolver esto? ¡Gracias por adelantado!

+3

¿Qué versión de git estás utilizando? 'git cherry-pick --continue'ha sido introducido en agosto de 2011 (https://github.com/git/git/commit/5a5d80f4ca16fdb1f2577474ad94135839853a3e, git1.7.7 +) – VonC

+0

@VonC, debe enviar esto como una respuesta. Ahora es el correcto. – cjbarth

+0

@cjbarth Lo he publicado como respuesta a continuación. – VonC

Respuesta

8

resuelve con lo siguiente: rm .git/CHERRY_PICK_HEAD que se dan cuenta de que esto es peligroso ya que esto no garantiza la coherencia interna dentro de git, pero no hay problemas para mí hasta ahora ...

+1

¿Por qué votar abajo? Me funcionó muy bien y no ha causado ningún problema. – Stunner

+2

Claro, esto funcionará para * la mayoría de las personas, sin embargo, es un ejemplo de algunas de las peores prácticas y podría ser catastrófico para * algunas * personas. – charneykaye

+0

Para mi caso, uso SourceTree y lo hice por error. No cometió nada y una clase en conflicto con la fusión. Lo descarté. Luego quise hacer algunos commits. La extracción falló. Probé tu código pero no funcionó. Eso es porque tienes algunos votos bajos. –

83

La próxima vez que intente git cherry-pick --abort, de lo contrario lo que hizo debe más o menos trabajo.

6

Si el git cherry-pick --continue no funciona, eso significa Git es demasiado viejo: esta opción se introdujo para Git 1.7.8 (Dic 2011) en commit 5a5d80f

It works by dropping the first instruction from .git/sequencer/todo and performing the remaining cherry-picks listed there, with options (think " -s " and " -X ") from the initial command listed in " .git/sequencer/opts ".

En estos días (2014), que lo haría sea ​​el comando que debe usar cuando vea "You have not concluded your cherry-pick".

Cuestiones relacionadas