Cherry-Picking

Fortgeschrittenes Git

Amanda Crawford-Adamo

Software and Data Engineer

Was ist Cherry-Pick?

Übernimmt die Änderungen eines bestimmten Commits in einen anderen Branch

Einzelnen Commit cherry-picken

git cherry-pick <commit-hash>

Mehrere Commits cherry-picken

git cherry-pick <hash1> <hash2> ..

Zweck

  • Bestimmte Bugfixes über Branches anwenden
  • Features auf stabile Versionen zurückrollen
  • Experimentelle Änderungen gezielt übernehmen
  • Verlorene Commits wiederherstellen
Fortgeschrittenes Git

Cherry-Pick-Beispiel

Ein Diagramm von main und feature. main hat zwei Commits. Der feature-Branch verzweigt nach dem letzten Commit von main.

Zwei Bilder mit den Logs von main und feature vor dem Cherry-Pick.

Fortgeschrittenes Git

Cherry-Pick-Prozess

  1. main-Branch auschecken

    git checkout main
    
  2. Cherry-Pick ausführen, um die Änderungen von Commit def456 aus dem feature-Branch zu übernehmen.

    git cherry-pick def456
    

Ein Diagramm von main und feature. main hat drei Commits. Der feature-Branch verzweigt nach dem zweiten Commit von main und hat zwei zusätzliche Commits. Der dritte Commit auf main ist ein cherry-geklickter Commit vom letzten Commit des feature-Branch.

Fortgeschrittenes Git

Cherry-Pick-Konflikte lösen

Schritte zur Konfliktlösung
  1. Konfliktdateien manuell bearbeiten
  2. Gelöste Dateien zum Staging hinzufügen mit git add <resolved-files>
  3. Mit dem Cherry-Pick fortfahren, indem du das Flag --continue nutzt
git cherry-pick --continue
Cherry-Pick abbrechen

Um einen Cherry-Pick abzubrechen, verwende das Flag --abort

git cherry-pick --abort
Fortgeschrittenes Git

Wann du Cherry-Pick nutzen solltest

Anwendungsfälle

  1. Hotfixes anwenden
  2. Isolierte Features testen

Vorsicht

  1. Kann doppelte Commits erzeugen
  2. Kann die Projekt-Historie verkomplizieren, wenn übermäßig genutzt
  3. Bei größeren Änderungen: Mergen oder Rebasen erwägen
Fortgeschrittenes Git

Lass uns üben!

Fortgeschrittenes Git

Preparing Video For Download...