Abandonner un choix de cerise git?

389

J'ai couru git cherry-pick <hash>et j'ai eu des conflits de fusion. Je ne veux pas résoudre les conflits, je veux juste abandonner la sélection. Lorsque vous effectuez une fusion réelle (avec git merge), il est pratique git merge --abort. Quel est l'équivalent de la cueillette des cerises?

agmin
la source

Réponses:

602

Vous pouvez faire ce qui suit

git cherry-pick --abort

À partir des git cherry-pickdocuments

--abort  

Annulez l'opération et revenez à l'état de pré-séquence.


la source
6
L'option --abort a-t-elle été supprimée / ajoutée dans une version git spécifique? J'utilise git 1.7.4.1 et "git cherry-pick --abort" entraîne un message d'utilisation de git cherry-pick. J'ai aussi salué "git help cherry-pick" pour "avort" et je n'ai rien trouvé.
danns87
1
@ danns87, l' --abortoption est devenue disponible dans la version 1.7.8 . Pouvez-vous mettre à niveau?
4
oui, ça ne marche pas. La plupart du temps, je reçois cela error: Entry '<unstaged file>' not uptodate. Cannot merge. D'un autre côté, git reset --mergeça marche!
kumarharsh
@KumarHarsh quelle version de Git utilisez-vous?
1
> 1.8. En fait, c'était à cause de fichiers sales dans le répertoire. Mais la git reset --mergecommande fonctionne même alors.
kumarharsh
73

J'ai trouvé que la réponse est git reset --merge- elle efface la tentative de sélection de cerises en conflit.

agmin
la source
4
Est-ce différent git reset --hard? J'utilise le workflow de rebase, le cas échéant. Cela semble marcher pour moi.
x-yuri
3
quelle est la différence entre --mergeet --abort?
ffghfgh
8

Pour moi, le seul moyen de réinitialiser l'échec de la tentative de sélection

git reset --hard HEAD
Diego P. Steiner
la source
Cela ne répond pas à la question et suggère seulement une opération susceptible de détruire des données.
martinkunev
2

Essayez également avec l'option '--quit', qui vous permet d'interrompre l'opération en cours et d' effacer davantage l'état du séquenceur.

--quit Oubliez l'opération en cours. Peut être utilisé pour effacer l'état du séquenceur après une sélection ou un retour en échec.

--abort Annuler l'opération et revenir à l'état de pré-séquence.

utilisez l'aide pour voir le document original avec plus de détails, $ git help cherry-pick

J'éviterais 'git reset --hard HEAD' qui est trop sévère et vous pourriez finir par faire un travail manuel.

Yu Chen
la source
Cela ne devrait pas exister. Git est assez compliqué sans deux façons d'annuler un choix de cerise qui ont des effets subtilement différents sur l'état du dépôt.
Kaz
Certes, cela ne me donne aucune erreur, mais ne quitte pas complètement l'état de la commande.
Yu Chen