Sobes.tech
Junior

Čo je cherry-pick?

sobes.tech AI

Odpoveď od AI

git cherry-pick saťahuje jeden alebo viac commitov z jednej vetvy do druhej.

Princíp fungovania:

  1. Vyberie špecifikovaný commit (alebo commity) v zdrojovej vetve.
  2. Aplikuje zmeny obsiahnuté v týchto commitoch na aktuálnu aktívnu vetvu.
  3. Vytvorí nové commity v aktuálnej vetve s rovnakými zmenami a správami ako pôvodné.

Kedy použiť:

  • Prenos konkrétnej opravy chyby z jednej vetvy (napríklad, production) do inej (napríklad, development), bez ovplyvnenia iných zmien.
  • Aplikovanie zmien z jednej feature vetvy do inej, bez úplného zlúčenia.
  • Zrušenie nesprávnych merge-ov s ponechaním samostatných commitov.

Rozdiel od merge a rebase:

  • merge: Spojí celú históriu zmien z jednej vetvy do druhej.
  • rebase: Prepíše históriu commitov, presúva ich na novú základňu.
  • cherry-pick: Používa iba vybrané commity, vytvára nové a nemení históriu pôvodných commitov.

Hlavný príkaz:

# Preniesť jeden commit
git cherry-pick <commit-hash>

# Preniesť viac commitov (v poradí ich uvedenia)
git cherry-pick <commit-hash-1> <commit-hash-2> ...

Príklad:

Predpokladajme, že existujú dve vetvy: main a feature. Na vetve feature bol vykonaný commit fix-typo. Tento commit je potrebné preniesť do vetvy main.

# Prepnúť na cieľovú vetvu
git checkout main

# Spustiť cherry-pick s hashom commitu z vetvy `feature`
git cherry-pick 7f3bca2 # Príklad hash

Po vykonaní príkazu sa v vetve main objaví nový commit s rovnakými zmenami ako fix-typo, ale s iným hashom.