Heim >Web-Frontend >CSS-Tutorial >Cherry-Picking-Commits in Git

Cherry-Picking-Commits in Git

Joseph Gordon-Levitt
Joseph Gordon-LevittOriginal
2025-03-17 11:08:10876Durchsuche

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.

Erweiterte Git -Serie:

  • Teil 1: Erstellen des idealen Git -Commits
  • Teil 2: Effektive Git -Verzweigungsstrategien
  • Teil 3: Straffung der Zusammenarbeit mit Pull -Anfragen
  • Teil 4: Lösung von Zusammenführungskonflikten
  • Teil 5: Wiedergeburt vs. Zusammenführung: Ein Vergleich
  • Teil 6: Mastering Interactive Rebase
  • Teil 7: Cherry-Picking Commits in Git ( Sie sind hier! )
  • Teil 8: Erholung verlorener Commits mit dem Reflog

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.

Einkomite umziehen

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.

Aufräumen

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.

Ein spezielles Werkzeug, kein täglicher Fahrer

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"!

Erweiterte Git -Serie:

  • Teil 1: Erstellen des idealen Git -Commits
  • Teil 2: Effektive Git -Verzweigungsstrategien
  • Teil 3: Straffung der Zusammenarbeit mit Pull -Anfragen
  • Teil 4: Lösung von Zusammenführungskonflikten
  • Teil 5: Wiedergeburt vs. Zusammenführung: Ein Vergleich
  • Teil 6: Mastering Interactive Rebase
  • Teil 7: Cherry-Picking Commits in Git ( Sie sind hier! )
  • Teil 8: Erholung verlorener Commits mit dem Reflog

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn