Einen Kirschpickel abbrechen?

389

Ich rannte git cherry-pick <hash>und hatte Zusammenführungskonflikte. Ich möchte die Konflikte nicht lösen, ich möchte nur die Kirschpickel abbrechen. Bei einer tatsächlichen Zusammenführung (mit git merge) gibt es das Praktische git merge --abort. Was ist das Äquivalent zum Kirschpflücken?

agmin
quelle

Antworten:

601

Sie können Folgendes tun

git cherry-pick --abort

Aus den git cherry-pickDokumenten

--abort  

Brechen Sie den Vorgang ab und kehren Sie in den Zustand vor der Sequenz zurück.


quelle
6
Wurde die Option --abort in einer bestimmten Git-Version entfernt / hinzugefügt? Ich verwende git 1.7.4.1 und "git cherry-pick --abort" führt zu einer Meldung zur Verwendung von git cherry-pick. Ich habe auch "git help cherry-pick" für "abort" gesucht und nichts gefunden.
Danns87
1
@ danns87 Die --abortOption wurde ab Version 1.7.8 verfügbar . Können Sie ein Upgrade durchführen?
4
Ja, das funktioniert nicht. Meistens bekomme ich das error: Entry '<unstaged file>' not uptodate. Cannot merge. Auf der anderen Seite git reset --mergefunktioniert!
Kumarharsh
@KumarHarsh welche Version von Git benutzt du?
1
> 1,8. Eigentlich lag es an schmutzigen Dateien im Verzeichnis. Aber der git reset --mergeBefehl funktioniert auch dann noch.
Kumarharsh
73

Ich fand die Antwort git reset --merge: Es löscht den widersprüchlichen Kirschpflückversuch.

agmin
quelle
4
Ist es anders als git reset --hard? Ich verwende den Rebase-Workflow, wenn überhaupt. Es scheint für mich zu funktionieren.
X-Yuri
3
Was ist der Unterschied zwischen --mergeund --abort?
ffghfgh
8

Für mich war der einzige Weg, den fehlgeschlagenen Cherry-Pick-Versuch zurückzusetzen

git reset --hard HEAD
Diego P. Steiner
quelle
Dies beantwortet die Frage nicht und deutet nur auf eine Operation hin, die Daten zerstören kann.
Martinkunev
2

Versuchen Sie es auch mit der Option '--quit', mit der Sie den aktuellen Vorgang abbrechen und den Sequenzerstatus weiter löschen können.

--quit Vergessen Sie den aktuellen Vorgang. Kann verwendet werden, um den Sequenzer-Status nach einem fehlgeschlagenen Cherry-Pick oder Revert zu löschen.

--abort Bricht den Vorgang ab und kehrt in den Zustand vor der Sequenz zurück.

Verwenden Sie die Hilfe, um das Originaldokument mit weiteren Details anzuzeigen. $ git help cherry-pick

Ich würde vermeiden, dass 'git reset --hard HEAD' zu hart ist und Sie möglicherweise einige manuelle Arbeiten ausführen.

Yu Chen
quelle
Das sollte nicht existieren. Git ist kompliziert genug, ohne zwei Möglichkeiten, einen Cherry Pick abzubrechen, die subtil unterschiedliche Auswirkungen auf den Repo-Status haben.
Kaz
Es stimmt, es gibt mir keinen Fehler, aber ich kann den Befehlsstatus nicht vollständig beenden.
Yu Chen