Sobes.tech
Junior

Kas yra cherry-pick?

sobes.tech AI

Atsakymas iš AI

git cherry-pick naudojamas perkelti vieną ar kelis commit'us iš vienos šakos į kitą.

Veikimo principas:

  1. Pasirenka nurodytą commit'ą (arba commit'us) šaltinio šakoje.
  2. Taiko šiuose commit'uose esančius pakeitimus į dabartinę aktyvią šaką.
  3. Sukuria naujus commit'us dabartinėje šakoje su tais pačiais pakeitimais ir žinutėmis kaip ir originaliuose.

Kada naudoti:

  • Perkelti konkrečią klaidos pataisą iš vienos šakos (pvz., gamyba) į kitą (pvz., plėtra), nepažeidžiant kitų pakeitimų.
  • Taikyti pakeitimus iš vienos funkcijų šakos į kitą, nevisiškai sujungiant jas.
  • Atšaukti netinkamus merge'us, išlaikant atskirus commit'us.

Skirtumai nuo merge ir rebase:

  • merge: Sujungia visą pakeitimų istoriją iš vienos šakos į kitą.
  • rebase: Perrašo commit'ų istoriją, perkeliant juos į naują bazę.
  • cherry-pick: Taiko tik pasirinktus commit'us, kuria naujus ir nekeičia originalių commit'ų istorijos.

Pagrindinė komanda:

# Perkelti vieną commit'ą
git cherry-pick <commit-hash>

# Perkelti kelis commit'us (nurodyta tvarka)
git cherry-pick <commit-hash-1> <commit-hash-2> ...

Pavyzdys:

Tarkime, yra dvi šakos: main ir feature. feature šakoje padarytas fix-typo commit'as. Jį reikia perkelti į main šaką.

# Pereiti į tikslinę šaką
git checkout main

# Vykdyti cherry-pick naudojant commit'ą iš `feature` šakos
git cherry-pick 7f3bca2 # Pavyzdinis hash

Po komandos vykdymo, main šakoje atsiras naujas commit'as su tais pačiais pakeitimais kaip ir fix-typo, bet su kitu hash'u.