Sobes.tech
Junior

Was ist cherry-pick?

sobes.tech KI

Antwort von AI

git cherry-pick wird verwendet, um einen oder mehrere Commits von einem Zweig auf einen anderen zu übertragen.

Funktionsprinzip:

  1. Wählt den angegebenen Commit (oder die Commits) im Quellzweig aus.
  2. Wendet die Änderungen, die in diesen Commits enthalten sind, auf den aktuellen aktiven Zweig an.
  3. Erstellt neue Commits im aktuellen Zweig mit den gleichen Änderungen und Nachrichten wie die ursprünglichen.

Wann verwenden:

  • Übertragen einer spezifischen Fehlerbehebung von einem Zweig (z.B. Produktion) auf einen anderen (z.B. Entwicklung), ohne andere Änderungen zu beeinflussen.
  • Anwenden von Änderungen aus einem Feature-Zweig auf einen anderen, ohne sie vollständig zusammenzuführen.
  • Rückgängigmachen fehlerhafter Merges unter Beibehaltung der einzelnen Commits.

Unterschiede zu merge und rebase:

  • merge: Vereint die gesamte Änderungsverlaufsgeschichte eines Zweigs mit einem anderen.
  • rebase: Überschreibt die Commit-Historie, indem sie auf eine neue Basis verschoben wird.
  • cherry-pick: Wendet nur ausgewählte Commits an, erstellt neue und ändert nicht die Historie der ursprünglichen Commits.

Hauptbefehl:

# Einen Commit übertragen
git cherry-pick <commit-hash>

# Mehrere Commits übertragen (in der Reihenfolge ihrer Angabe)
git cherry-pick <commit-hash-1> <commit-hash-2> ...

Beispiel:

Angenommen, es gibt zwei Zweige: main und feature. In feature wurde ein Commit fix-typo gemacht. Dieser Commit soll in main übertragen werden.

# Zum Zielzweig wechseln
git checkout main

# Cherry-pick mit dem Commit-Hash aus dem feature-Zweig ausführen
git cherry-pick 7f3bca2 # Beispiel-Hash des Commits

Nach Ausführung des Befehls erscheint in main ein neuer Commit mit den gleichen Änderungen wie fix-typo, aber mit einem anderen Hash.