Heim >Web-Frontend >CSS-Tutorial >Cherry-Picking-Commits in Git
Dieser Artikel setzt unsere "Advanced Git" -Serie fort. Folgen Sie uns auf Twitter oder abonnieren Sie unseren Newsletter, um Updates zu zukünftigen Artikeln zu erhalten!
In der vorherigen Rate haben wir das Wiedergeburt und Verschmelzung untersucht. Während sowohl git merge
als auch git rebase
subtil anders sind, dienen derselbe grundlegende Zweck: Veränderungen von einem Zweig in einen anderen zu integrieren.
Dieser Artikel konzentriert sich auf git cherry-pick
, einen leistungsstarken Befehl, der die selektive Integration einzelner Commits von jedem Zweig in Ihren aktuellen Kopf ermöglicht. Dies steht im scharfen Kontrast zu git merge
und git rebase
, die alle neuen Commits aus der Quellzweig enthalten.
Warum selektiv ein einzelnes Komitee anwenden? Ein wichtiger Anwendungsfall ist die Korrektur von Fehlern. Stellen Sie sich vor, Sie hätten sich versehentlich für die falsche Zweigstelle verpflichtet. cherry-pick
vereinfacht den Fix: Wechseln Sie zum richtigen Zweig und zum richtigen Cherry-Pick.
Ein Wort der Vorsicht: Vermeiden Sie eine übermäßige Abhängigkeit von cherry-pick
. Die Workflows auf Zweigebene, die durch git merge
und git rebase
erleichtert werden, werden im Allgemeinen bevorzugt. cherry-pick
ist ein wertvolles Instrument für bestimmte Situationen, kein Ersatz für Standardverschmelzungen oder -basings.
Betrachten Sie dieses Szenario: Ein Commit, das für die feature/newsletter
-Zweigstelle vorgesehen ist, die fälschlicherweise im master
gelandet ist. Der folgende Turm -Screenshot (eine GIT -GIT -GUI für MacOS und Windows) zeigt dies und zeigt das Commit 26bf1b48
fälschlicherweise in master
platziert:
Alternativ enthüllt die Befehlszeile das Problem:
$ git log Commit 26BF1B4808BA9783E4FABB19EC81E7A4C8160194 (Head -> Master) Autor: Tobias Günther Datum: Fr 5. Oktober 09:58:03 2018 0200 Newsletter -Anmeldeseite
Commit 26bf1b48
gehört zum feature/newsletter
. Verwenden wir cherry-pick
um es zu bewegen:
$ Git Checkout -Funktion/Newsletter Umgeschaltet auf Branch 'Feature/Newsletter' $ Git Status Auf Filialen Feature/Newsletter Nichts zu verpflichten, arbeitsbaum sauber $ git kirschpick 26bf1b48 [Feature/Newsletter 7FB55D0] Newsletter -Anmeldeseite Autor: Tobias Günther Datum: Fr 5. Oktober 09:58:03 2018 0200 1 Datei geändert, 0 Insertionen (), 0 Löschungen (-) Erstellen Sie den Modus 100644 Signup.html
git log
zeigt jetzt den Commit in feature/newsletter
:
$ git log Commit 7FB55D06A8E70FDCE46921A8A3D3A9DE7F7FB8D7 (Leiter -> Feature/Newsletter) Autor: Tobias Günther Datum: Fr 5. Oktober 09:58:03 2018 0200 Newsletter -Anmeldeseite
HINWEIS: cherry-pick
erstellt eine Kopie des Commits und lässt das Original intakt.
Das "falsche" Commit bleibt im master
. git reset
entfernt es:
$ Git Checkout Master Zum Branch "Master" umgestellt $ git Reset -harter Kopf ~ 1 Der Kopf befindet sich jetzt bei 776F8CA -Änderung zum Titel- und Löschen der Fehlerseite
Die Turm -GUI visualisiert diesen gesamten Prozess.
Priorisieren Sie zusammen, wenn möglich, merge
oder rebase
. Reservieren Sie cherry-pick
für Situationen, in denen sie ungeeignet sind, insbesondere für den Umzug einzelner Commits. Denken Sie daran, git cherry-pick
-Duplikate begangen; Danach immer aufräumen.
Entdecken Sie mein kostenloses "Advanced Git Kit" für tiefere Tauchgänge in Git -Tools, einschließlich Verzweigungsstrategien, interaktiver Rebase, Reflog und Submodul.
Happy Cherry Picking, und wir sehen uns in der nächsten "Advanced Git"!
Das obige ist der detaillierte Inhalt vonCherry-Picking-Commits in Git. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!