Sobes.tech
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 master u feature će napraviti merge-commit koji spaja promene.
  • git rebase master u 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.