2012-09-13 6 views
31

Gestern habe ich zwei Commits in meinen Hauptzweig aufgenommen, eine von ihnen verursachte Merge-Konflikte und ich löste sie, verpflichtete sie und schob sie zum Ursprung. Heute versuche ich vom Server zu ziehen, wenn ich die folgende Fehlermeldung erhalten:Wie man einen Git Cherry-Pick schließt?

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

Git Status lautet:

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

ich ohne Erfolg folgendes versucht:

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

Irgendeine Idee, wie ich das lösen könnte? Danke im Voraus!

+3

Welche git Version verwenden Sie? 'git cherry-pick --continue' wurde im August 2011 eingeführt (https://github.com/git/git/commit/5a5d80f4ca16fdb1f2577474ad94135839853a3e, git1.7.7 +) – VonC

+0

@VonC, Sie sollten dies als Antwort einreichen. Es ist jetzt der richtige. – cjbarth

+0

@cjbarth Ich habe es als Antwort unten gepostet. – VonC

Antwort

8

mit folgendem gelöst: rm .git/CHERRY_PICK_HEAD Ich weiß, das ist gefährlich, da dies nicht die interne Konsistenz garantiert innerhalb git, aber keine Probleme für mich so weit ...

+1

Warum die down vote? Es funktionierte für mich ganz gut und hat keine Probleme verursacht. – Stunner

+2

Sicher, das wird für * die meisten * Leute funktionieren, aber es ist ein Beispiel für einige schlechteste Praktiken und könnte katastrophal für * einige * Leute sein. – charneykaye

+0

Für meinen Fall benutze ich SourceTree und habe versehentlich eine Kirsche ausgewählt. Es hat nichts festgelegt und eine Klasse kollidierte mit der Zusammenführung. Ich habe es verworfen. Dann wollte ich ein paar Commits machen. Der Pull ist fehlgeschlagen. Ich habe deinen Code ausprobiert, aber es hat nicht funktioniert. Das ist, weil Sie ein paar Downvotes haben. –

83

Das nächste Mal git cherry-pick --abort versuchen, sonst was sollten Sie tat mehr oder weniger arbeiten.

6

Wenn die git cherry-pick --continue nicht funktioniert, das heißt git zu alt ist: diese Option für git 1.7.8 (Dezember 2011) eingeführt wurde, in 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 ".

In diesen Tagen (2014), das wäre Verwenden Sie den zu verwendenden Befehl, wenn Sie "You have not concluded your cherry-pick" sehen.