Sobes.tech
Junior

Co je cherry-pick?

sobes.tech AI

Odpověď od AI

git cherry-pick se používá k přenesení jednoho nebo více commitů z jedné větve do druhé.

Princip fungování:

  1. Vybere specifikovaný commit (nebo commity) ve zdrojové větvi.
  2. Aplikuje změny obsažené v těchto commitech na aktuální aktivní větev.
  3. Vytvoří nové commity v aktuální větvi se stejnými změnami a zprávami jako původní.

Kdy použít:

  • Přenesení konkrétní opravy chyby z jedné větve (například produkce) do jiné (například vývoj), aniž by se ovlivnily jiné změny.
  • Aplikace změn z jedné feature větve do jiné, aniž by se je úplně sloučily.
  • Zrušení nesprávných mergeů s ponecháním jednotlivých commitů.

Rozdíly od merge a rebase:

  • merge: Spojuje celou historii změn z jedné větve do druhé.
  • rebase: Přepisuje historii commitů, přesouvá je na novou základnu.
  • cherry-pick: Používá pouze vybrané commity, vytváří nové a nemění historii původních commitů.

Hlavní příkaz:

# Přenést jeden commit
git cherry-pick <commit-hash>

# Přenést více commitů (v pořadí jejich uvedení)
git cherry-pick <commit-hash-1> <commit-hash-2> ...

Příklad:

Předpokládejme, že jsou dvě větve: main a feature. Na větvi feature byl proveden commit fix-typo. Tento commit je třeba přenést do větve main.

# Přepnout na cílovou větev
git checkout main

# Spustit cherry-pick s hashem commitu z větve feature
git cherry-pick 7f3bca2 # Příklad hashe

Po provedení příkazu se ve větvi main objeví nový commit se stejnými změnami jako fix-typo, ale s jiným hashem.