Sobes.tech
Junior

Čo je to cherry-pick v kontexte systémov riadenia verzií?

sobes.tech AI

Odpoveď od AI

Cherry-pick v Git-e je operácia, ktorá umožňuje aplikovať zmeny z konkrétneho commitu na inú vetvu. To je užitočné, keď je potrebné preniesť určité opravy alebo funkcie z jednej vetvy na inú, bez prenášania všetkých nasledujúcich commitov.

Použitie:

  1. Výber commitu: Určí sa hash commitu, ktorý chcete "skopírovať".
  2. Prechod na cieľovú vetvu: Prejdeme na vetvu, na ktorú sa majú aplikovať zmeny.
  3. Spustenie cherry-pick: Spustí sa príkaz git cherry-pick <commit-hash>. Git sa pokúsi aplikovať zmeny z vybraného commitu do aktuálnej vetvy.
# Prechod na cieľovú vetvu
git checkout main

# Aplikovanie zmien z commitu s hash-om abcdef1
git cherry-pick abcdef1

Možné scenáre použitia:

  • Oprava chyby v starej vetve vydania.
  • Prenos jednotlivé funkcie z vývojovej vetvy do staging alebo produkcie.
  • Vrátenie zmien z konkrétneho commitu (pomocou voľby -n a následne git revert).

Rozdiely od merge a rebase:

  • merge spája všetky zmeny z jednej vetvy do druhej.
  • rebase prenáša všetky commit-y jednej vetvy na inú.
  • cherry-pick prenáša iba vybraný commit, vytvárajúc nový commit s rovnakými zmenami v cieľovej vetve.

Dôležité je pamätať, že cherry-pick vytvára nový commit s novým hash-om. To môže viesť k duplikácii zmien, ak je ten istý commit neskôr zlúčený s cieľovou vetvou iným spôsobom. Používajte ho opatrne a pochopte dôsledky.