Sobes.tech
Junior — Middle

Ako rozlíšiť príkazy git rebase a git merge a v čom sú ich hlavné rozdiely?

sobes.tech AI

Odpoveď od AI

git merge a git rebase sú dva rôzne príkazy na integráciu zmien z jednej vetvy do druhej, ale fungujú odlišne.

  • git merge vytvorí nový merge commit, ktorý spojí históriu oboch vetiev a zachová ich paralelný vývoj. História zostáva rozvetvená, jasne ukazujúc, kedy a ako došlo ku zlúčeniu.

  • git rebase "prepíše" históriu, presúvajúc vaše lokálne commity na inú vetvu, čím vytvára lineárnu históriu bez merge commitov. To zjednodušuje históriu, ale mení hash-ové hodnoty commitov.

Hlavné rozdiely:

  • Merge zachová rozvetvenú históriu, rebase urobí históriu lineárnu.
  • Po rebase je potrebné byť opatrný s verejnými vetvami, pretože história sa prepíše.
  • Merge je jednoduchší a bezpečnejší pre tímovú prácu.

Príklad:

# merge
git checkout feature
git merge main

# rebase
git checkout feature
git rebase main

V prvom prípade sa objaví merge commit, v druhom budú vaše commity "presunuté" na vrchol main.