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.