Cherry-Picking

Zaawansowany Git

Amanda Crawford-Adamo

Software and Data Engineer

Czym jest cherry-pick?

Stosuje zmiany z określonego commita do innej gałęzi

Cherry-pick pojedynczego commita

git cherry-pick <commit-hash>

Cherry-pick wielu commitów

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

Zastosowania

  • Stosowanie poprawek błędów w gałęziach
  • Przywracanie funkcji do stabilnych wersji
  • Selektywne wdrażanie zmian eksperymentalnych
  • Odzyskiwanie utraconych commitów
Zaawansowany Git

Przykład cherry-pick

Graf gałęzi main i feature. Main ma dwa commity. Gałąź feature odgałęzia się od main po ostatnim commicie.

Dwa obrazy przedstawiające logi gałęzi main i feature przed procesem cherry-pick.

Zaawansowany Git

Proces cherry-pick

  1. Przełącz się na gałąź main

    git checkout main
    
  2. Uruchom polecenie cherry-pick, aby przenieść zmiany z commita def456 z gałęzi feature.

    git cherry-pick def456
    

Graf gałęzi main i feature. Main ma trzy commity. Gałąź feature odgałęzia się od main po drugim commicie z dwoma dodatkowymi. Trzeci commit w main pochodzi z cherry-pick ostatniego commita gałęzi feature.

Zaawansowany Git

Rozwiązywanie konfliktów cherry-pick

Kroki rozwiązywania konfliktów
  1. Ręcznie edytuj pliki z konfliktami
  2. Dodaj rozwiązane pliki do obszaru staging: git add <resolved-files>
  3. Kontynuuj cherry-pick z flagą --continue
git cherry-pick --continue
Przerywanie cherry-pick

Aby przerwać operację, użyj flagi --abort

git cherry-pick --abort
Zaawansowany Git

Kiedy używać cherry-pick

Przypadki użycia

  1. Stosowanie poprawek awaryjnych
  2. Testowanie izolowanych funkcji

Ostrzeżenia

  1. Może tworzyć zduplikowane commity
  2. Przy nadmiernym użyciu komplikuje historię projektu
  3. Przy większych zmianach: rozważ merge lub rebase
Zaawansowany Git

Czas na ćwiczenia!

Zaawansowany Git

Preparing Video For Download...