Suche…


Einführung

Ein Kirschpick nimmt den Patch, der in einem Commit eingeführt wurde, und versucht, ihn in dem Zweig, in dem Sie sich gerade befinden, erneut anzuwenden.

Quelle: Git SCM Book

Syntax

  • git cherry-pick [--edit] [-n] [-m übergeordnete Nummer] [-s] [-x] [--ff] [-S [Schlüssel-ID]] Commit
  • git cherry pick - weiter
  • git cherry pick - quit
  • git cherry pick --abort

Parameter

Parameter Einzelheiten
-e, --edit Mit dieser Option können Sie die Commit-Nachricht mit git cherry-pick dem Commit bearbeiten.
-x Hängen Sie beim Aufzeichnen des Commits eine Zeile mit der Aufschrift "(Kirsche aus Commit…)" an die ursprüngliche Commit-Nachricht an, um anzugeben, von welchem ​​Commit diese Änderung aus dem Kirschbaum ausgewählt wurde. Dies geschieht nur für Kirschpickel ohne Konflikte.
--ff Wenn der aktuelle HEAD mit dem übergeordneten Element des Cherry-pick'ed Commit identisch ist, wird ein Schnellvorlauf zu diesem Commit ausgeführt.
--fortsetzen Setzen Sie den Vorgang unter Verwendung der Informationen in .git / Sequenzer fort. Kann verwendet werden, um nach dem Lösen von Konflikten in einem fehlgeschlagenen Cherry-Pick oder Revert fortzufahren.
--Verlassen Vergessen Sie den laufenden Vorgang. Kann verwendet werden, um den Sequencer-Status nach einem fehlgeschlagenen Cherry-Pick oder Revert zu löschen.
--abbrechen Brechen Sie den Vorgang ab und kehren Sie in den Zustand vor der Sequenz zurück.

Kopieren eines Commits von einem Zweig in einen anderen

git cherry-pick <commit-hash> wendet die in einem vorhandenen Commit vorgenommenen Änderungen auf einen anderen Zweig an und zeichnet ein neues Commit auf. Im Wesentlichen können Sie Commits von Zweig zu Zweig kopieren.

Gegeben der folgende Baum (Quelle)

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

Nehmen wir an, wir wollen b886a0 nach master kopieren (über 5a6057 ).

Wir können rennen

git checkout master
git cherry-pick b886a0

Nun sieht unser Baum so aus:

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 - a66b23 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

Wobei das neue Commit a66b23 denselben Inhalt ( a66b23 , Commit-Nachricht) wie b886a0 (aber ein anderes übergeordnetes b886a0 ). Beachten Sie, dass die b886a0 nur Änderungen dieses Commits (in diesem Fall b886a0 ) und nicht alle Änderungen im Feature-Zweig übernimmt (dazu müssen Sie entweder Rebasierung oder Zusammenführen verwenden).

Einen Commit-Bereich von einem Zweig in einen anderen kopieren

git cherry-pick <commit-A>..<commit-B> jedes Commit nach A und bis einschließlich B auf den gerade ausgecheckten Zweig.

git cherry-pick <commit-A>^..<commit-B> Commit A und jedes Commit bis einschließlich B auf den derzeit ausgecheckten Zweig.

Überprüfen, ob ein Kirschpickel erforderlich ist

Bevor Sie mit dem Kirschpick-Vorgang beginnen, können Sie überprüfen, ob das Commit, das Sie zum Kirschpicken auswählen möchten, bereits im Zielzweig vorhanden ist. In diesem Fall müssen Sie nichts tun.

git branch --contains <commit> listet lokale Zweigstellen auf, die den angegebenen Commit enthalten.

git branch -r --contains <commit> enthält auch Remote Tracking-Zweige in der Liste.

Finden Sie Commits, die noch auf Upstream angewendet werden sollen

Der Befehl git cherry zeigt die Änderungen, die noch nicht auserlesen wurden.

Beispiel:

git checkout master
git cherry development

... und sehen die Ausgabe ein bisschen so aus:

+ 492508acab7b454eee8b805f8ba906056eede0ff
- 5ceb5a9077ddb9e78b1e8f24bfc70e674c627949
+ b4459544c000f4d51d1ec23f279d9cdb19c1d32b
+ b6ce3b78e938644a293b2dd2a15b2fecb1b54cd9

Die Verpflichtung, mit + sein, werden diejenigen sein, die noch nicht in die development eingepfercht sind.

Syntax:

git cherry [-v] [<upstream> [<head> [<limit>]]]

Optionen:

-v Zeigt die Commit-Subjekte neben den SHA1s an.

<Upstream> Upstream-Zweig zur Suche nach äquivalenten Commits. Der Standardwert ist der Upstream-Zweig von HEAD.

<head> Arbeitszweig; Der Standardwert ist HEAD.

<limit> Keine Commits bis zum Limit (einschließlich) melden.

Überprüfen Sie die Git-Cherry-Dokumentation für weitere Informationen.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow