Cherry-Picking

Advanced Git

Amanda Crawford-Adamo

Software and Data Engineer

Co je cherry-pick?

Aplikuje změny z konkrétního commitu do jiné větve

Cherry-Pick jednoho commitu

git cherry-pick <commit-hash>

Cherry-Pick více commitů

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

Účel

  • Přenášení konkrétních oprav chyb mezi větvemi
  • Vrácení funkcí na stabilní verzi
  • Selektivní aplikace experimentálních změn
  • Obnovení ztracených commitů
Advanced Git

Příklad cherry-pick

Graf větví main a feature. Main má dva commity. Větev feature se odštěpuje od main po posledním commitu.

Dva obrázky zobrazující log větví main a feature před procesem cherry-pick.

Advanced Git

Proces cherry-pick

  1. Přepněte na větev main

    git checkout main
    
  2. Spusťte příkaz cherry-pick pro přenesení změn z commitu def456 z větve feature.

    git cherry-pick def456
    

Graf větví main a feature. Main má tři commity. Větev feature se odštěpuje od main po druhém commitu a má dva další commity. Třetí commit větve main je cherry-picked commit z posledního commitu větve feature.

Advanced Git

Řešení konfliktů při cherry-pick

Kroky řešení konfliktů
  1. Ručně upravte konfliktní soubory
  2. Přidejte vyřešené soubory do staging oblasti pomocí git add <resolved-files>
  3. Pokračujte v cherry-pick operaci příznakem --continue
git cherry-pick --continue
Zastavení cherry-pick

Pro zastavení operace použijte příznak --abort

git cherry-pick --abort
Advanced Git

Kdy použít cherry-pick

Případy použití

  1. Aplikace hotfixů
  2. Testování izolovaných funkcí

Upozornění

  1. Může vytvářet duplicitní commity
  2. Při nadměrném používání komplikuje historii projektu
  3. Pro větší změny zvažte merge nebo rebase
Advanced Git

Pojďme si to procvičit!

Advanced Git

Preparing Video For Download...