Junior — Middle
Mis vahe on käskudel 'git merge' ja 'git rebase' harude ühendamisel Git versioonikontrollis?
sobes.tech AI
Vastus AI-lt
Käsud git merge ja git rebase mõlemad kasutatakse ühe haru muudatuste ühendamiseks teisega, kuid nad teevad seda erineval viisil:
-
git merge loob uue ühendamise commit'i, mis ühendab mõlema haru ajaloo ning säilitab nende paralleelse ajaloo.
- Näide:
git checkout master git merge feature-branch - Harude ajalugu jääb harunenud, näidates, millal ja milliseid harusid ühendati.
- Näide:
-
git rebase liigutab (kirjutab ümber) commit'id ühest harust teise, luues lineaarse ajaloo ilma ühendamise commit'ideta.
- Näide:
git checkout feature-branch git rebase master - See on nagu alustaksid uut haru viimase commit'i pealt
master-il, lihtsustades ajalugu, kuid muutes commit'ide hash'e.
- Näide:
Millal kasutada:
mergeon kasulik kogu ajaloo säilitamiseks ning kui on oluline läbipaistvus harude vahel.rebaseon kasulik ajaloo lihtsustamiseks enne selle ühendamist põhiharuga, et vältida tarbetuid ühendamise commit'e.
Oluline on meeles pidada, et rebase muudab ajaloo, seega ei soovitata teha rebase'i avalikel harudel, mis on juba teistele kättesaadavad.