Junior — Middle
Aký je rozdiel medzi príkazmi 'git merge' a 'git rebase' pri spájaní vetiev v systéme správy verzií Git?
sobes.tech AI
Odpoveď od AI
Príkazy git merge a git rebase sa obidva používajú na zlúčenie zmien z jednej vetvy do druhej, ale robia to odlišne:
-
git merge vytvorí nový commit zlúčenia, ktorý spojí históriu oboch vetiev a zachová ich paralelnú históriu.
- Príklad:
git checkout master git merge feature-branch - História vetiev zostáva rozvetvená, ukazuje, kedy a ktoré vetvy boli zlúčené.
- Príklad:
-
git rebase presunie (prepíše) commity z jednej vetvy na druhú, čím vytvorí lineárnu históriu bez commitov zlúčenia.
- Príklad:
git checkout feature-branch git rebase master - Je to ako začať novú vetvu od posledného commitu na masteri, zjednodušuje históriu, ale mení hash-ové commity.
- Príklad:
Kedy použiť:
mergeje vhodný na zachovanie celej histórie a keď je dôležitá transparentnosť vetvenia.rebaseje užitočný na zjednodušenie histórie pred zlúčením do hlavnej vetvy, aby sa predišlo zbytočným commitom zlúčenia.
Je dôležité si zapamätať, že rebase mení históriu, preto sa neodporúča robiť rebase na verejných vetvách, ktoré sú už dostupné iným.