Kürzlich wurde ich gebeten, einen Commit auszuwählen. Aber ich habe keine Ahnung was es bedeutet. Also was macht cherry picking
ein Commit in git bedeuten? Wie machst du das?
Kürzlich wurde ich gebeten, einen Commit auszuwählen. Aber ich habe keine Ahnung was es bedeutet. Also was macht cherry picking
ein Commit in git bedeuten? Wie machst du das?
Cherry picking in git bedeutet, einen Commit von einem Zweig zu wählen und ihn auf einen anderen anzuwenden.
Dies steht im Gegensatz zu anderen Möglichkeiten wie merge
und rebase
die normalerweise viele Commits auf einen anderen Zweig anwenden.
Stellen Sie sicher, dass Sie sich in dem Zweig befinden, auf den Sie das Commit anwenden möchten.
git checkout master
Führen Sie Folgendes aus:
git cherry-pick <commit-hash>
N.B .:
Wenn Sie aus einer öffentlichen Niederlassung auswählen, sollten Sie in Betracht ziehen, sie zu verwenden
git cherry-pick -x <commit-hash>
Dies erzeugt eine standardisierte Commit-Nachricht. Auf diese Weise können Sie (und Ihre Mitarbeiter) den Ursprung des Commits verfolgen und Konflikte in der Zukunft vermeiden.
Wenn Sie Notizen mit dem Commit versehen haben, folgen sie nicht dem Cherry-Pick. Um sie auch zu bringen, müssen Sie verwenden:
git notes copy <from> <to>
Zusätzliche Links:
Dieses Zitat stammt aus; Versionskontrolle mit Git (Wirklich tolles Buch, ich ermutige Sie, es zu kaufen, wenn Sie an Git interessiert sind)
Edit: Da diese Antwort noch Eindruck bekommt, würde ich gerne ein sehr nettes in action Video Tutorial dazu hinzufügen:
Youtube: Einführung in Git Kirschbaum
Git cherry-pick verwenden Der Befehl git cherry-pick commit übernimmt die Änderungen, die durch das benannte Commit für den aktuellen Zweig eingeführt werden. Es wird Ein neues, eindeutiges Commit einführen. Streng genommen, mit Git cherry-pick ändert die bestehende Historie innerhalb eines Repositories nicht; stattdessen fügt es der Geschichte hinzu. Wie bei anderen Git-Operationen auch Führen Sie Änderungen über den Prozess des Anwendens eines Diffs ein, das Sie möglicherweise benötigen Konflikte lösen, um die Änderungen aus dem gegebenen Commit vollständig anzuwenden . Der Befehl git cherry-pick wird typischerweise zum Einführen bestimmter verwendet Commits von einem Zweig innerhalb eines Repositories auf einen anderen Zweig. EIN Die übliche Verwendung besteht darin, Commits aus einer Wartung zu übermitteln zu einem Entwicklungszweig verzweigen.
$ git checkout rel_2.3
$ git cherry-pick dev~2 # commit F, above
Vor:
nach:
Cherry Picking in Git ist so konzipiert, dass einige Commits von einem Zweig in einen anderen Zweig übertragen werden. Es kann getan werden, wenn Sie z. einen Fehler gemacht und einen Wechsel in einen falschen Zweig vorgenommen, aber nicht den gesamten Zweig zusammenführen wollen. Sie können nur z. Setzen Sie das Commit zurück und wählen Sie es in einem anderen Zweig aus.
Um es zu benutzen, brauchen Sie nur git cherry-pick hash
, woher hash
ist ein Commit-Hash von einem anderen Zweig.
Für die vollständige Prozedur siehe: http://technosophos.com/2009/12/04/git-cherry-picking-move-small-code-patches-across-branches.html
Cherry-Pick ist eine Git-Funktion. Wenn jemand bestimmte Commits in einer Verzweigung an eine Zielverzweigung übergeben möchte, wird cherry-pick verwendet.
Git Kirschen-Pick
Schritte sind wie folgt.
git cherry-pick <commit id>
Hier ist die Commit-ID die Aktivitäts-ID einer anderen Verzweigung.
git cherry-pick 9772dd546a3609b06f84b680340fb84c5463264f
Sie können sich denken, ob eine Cherry Pick ähnlich einer Rebase ist, oder eher wie eine Rebase. Damit meine ich, dass es ein existierendes Commit benötigt und es neu generiert, indem es als Ausgangspunkt den Leiter der Zweigstelle benutzt, auf der Sie sich gerade befinden.
EIN rebase
nimmt ein Commit, das ein Elternteil X hatte und regeneriert das Commit, als ob es tatsächlich ein Elternteil Y hätte, und genau das ist a cherry-pick
tut.
Beim Cherry Pick geht es mehr darum, wie Sie die Commits auswählen. Mit pull
(Rebase), git regeneriert implizit Ihre lokalen Commits zusätzlich zu dem, was in Ihren Zweig gezogen wurde, aber mit cherry-pick
Sie wählen explizit einige Commits aus und generieren sie implizit (sie) über Ihrer aktuellen Verzweigung neu.
Die Art und Weise, wie Sie es tun, unterscheidet sich, aber unter der Haube sind sie sehr ähnliche Operationen - die Regeneration von Commits.
Es ist irgendwie wie Kopieren (von irgendwo) und Einfügen (irgendwo), aber für bestimmte Commits.
Wenn Sie beispielsweise einen Hotfix durchführen möchten, können Sie den cherry-pick
Feature.
Machen Sie Ihre cherry-pick
in einer Entwicklungsbranche, und merge
das Commit zu einem Release-Zweig. Auch a cherry-pick
von einem Release-Zweig zum Master. Voila