Sobes.tech
Junior — Middle

Kako razlikovati komande git rebase i git merge i u čemu su njihove glavne razlike?

sobes.tech АИ

Одговор од АИ

git merge и git rebase су два различита командни за интеграцију промена из једне гране у другу, али раде на различите начине.

  • git merge креира нови комит спајања који уједињује историју обе гране, одржавајући њихов паралелни развој. Историја остаје разграната, јасно показујући када и како је дошло до спајања.

  • git rebase "преписује" историју, померајући ваше локалне комитове преко друге гране, стварајући линијску историју без комитова спајања. Ово поједностављује историју, али мења хешеве комитова.

Главне разлике:

  • Merge одржава разгранату историју, rebase чини историју линијском.
  • После rebase-а, треба бити опрезан са јавним гранама, јер се историја преписује.
  • Merge је једноставнији и безбеднији за тимски рад.

Пример:

# merge
git checkout feature
git merge main

# rebase
git checkout feature
git rebase main

У првом случају, појавиће се комит спајања, у другом, ваши комити ће бити "пренесени" на врх main.