Cherry pick
Cherry-pick je metoda, kdy si z jiné větve vezmeme jen jeden konkrétní commit, který potřebujeme, a přidáme si ho do své větve. Lze si to představit jako merge, ale nespojujeme celou větev, jen vybrané commity.
Jak provést cherry-pick
Dejme tomu, že máme větve main, feature/animation a release/1.0.0.
Původně jsme chtěli featuru animací vydat už ve verzi 1.0.0.
Featura se však nestihla dokončit, ale přeci jen v této verzi chceme vydat alespoň základní animační engine.
Ten vznikl v jednom z commitů ve feature/animation.
Chcete tedy commit "Add animation engine" přesunout do větve release/1.0.0.
Příkaz provádíme vždy z větve, do které chceme cherry-pickovat.
V našem případě tedy release/1.0.0.
Zavoláte tedy příkaz git cherry-pick <commit hash>:
git cherry-pick a1b2c3d
[release/1.0.0 a1b2c3d] Add animation engine
Date: Tue Nov 11 18:42:36 2025 +0100
3 files changed, 57 insertions(+)
create mode 100644 src/animation/engine.py
Kdy zvolit použití cherry-pick
Jedná se o velmi silný nástroj. Zároveň má ale jisté konsekvence, kterým je nutné rozumět. Není tedy vhodný pro všechny případy.
- Oprava chyb v produkční verzi - commit s opravou je už v mainu, ale je potřeba jej dostat do konkrétní release větve
- Přenesení hotové části nehotové funkce - v pracovní větvi se nachází část, vhodná v jiné větvi
- Záchrana změn ze zrušené větve - pracovní větev byla zrušena, ale jsou v ní změny, které stojí za to aplikovat jinde
- Přidání konkrétního fixu do více verzí - v mainu je nový bezpečnostní fix, který je nutný dostat do více vydaných verzí