Junior — Middle
Kuo skiriasi 'git merge' ir 'git rebase' komandos jungiant šakas Git versijų valdymo sistemoje?
sobes.tech AI
Atsakymas iš AI
git merge ir git rebase abu naudojami norint sujungti vieno šakos pakeitimus į kitą, tačiau tai daroma skirtingais būdais:
-
git merge sukuria naują sujungimo commit'ą, kuris sujungia abiejų šakų istoriją ir išlaiko jų paralelinę istoriją.
- Pavyzdys:
git checkout master git merge feature-branch - Šakų istorija lieka išskirstyta, rodydama, kada ir kurios šakos buvo sujungtos.
- Pavyzdys:
-
git rebase perkelia (perrašinėja) commits iš vienos šakos į kitą, sukurdama linijinę istoriją be sujungimo commit'ų.
- Pavyzdys:
git checkout feature-branch git rebase master - Tai tarsi pradėti naują šaką nuo paskutinio
mastercommit'o, supaprastinant istoriją, bet keičiant commits'ų hash'us.
- Pavyzdys:
Kada naudoti:
mergeyra patogu išlaikyti visą istoriją ir kai svarbi skaidrumo šakotės proceso dalis.rebasenaudinga supaprastinti istoriją prieš jungiant į pagrindinę šaką, siekiant išvengti nereikalingų sujungimo commit'ų.
Svarbu prisiminti, kad rebase keičia istoriją, todėl nerekomenduojama atlikti rebase viešose šakose, kurios jau yra prieinamos kitiems.