Junior — Middle
Objasnite princip rada komande rebase u sistemu kontrole verzija Git i u čemu se razlikuje od merge.
sobes.tech АИ
Одговор од АИ
Komanda git rebase se koristi za premještanje ili 'prepisivanje' serije commitova na novu bazu, tj. na drugi commit. Omogućava da preuzmete promene iz jedne grane i 'preigraju' ih na drugu granu, stvarajući linearnu istoriju bez dodatnih merge commitova.
Razlike u odnosu na git merge:
- git merge spaja dve grane, stvarajući novi merge-commit koji čuva istoriju obe grane sa grananjima.
- git rebase pomera commitove jedne grane na vrh druge, prepisujući istoriju i čineći je linearnom.
Primer:
Ako imate granu feature, odvojenu od mastera, i master je ažuriran, onda:
git merge masteru feature će napraviti merge-commit koji spaja promene.git rebase masteru feature će pomeriti vaše commitove preko trenutnog stanja mastera, kao da ste počeli rad od poslednjeg stanja mastera.
Rebase je koristan za održavanje čiste istorije, ali zahteva oprez pri radu sa javnim granama, da ne prepišete zajedničku istoriju.