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:
- Pasirenka nurodytą commit'ą (arba commit'us) šaltinio šakoje.
- Taiko šiuose commit'uose esančius pakeitimus į dabartinę aktyvią šaką.
- 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.