Sobes.tech
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é.
  • 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.

Kedy použiť:

  • merge je vhodný na zachovanie celej histórie a keď je dôležitá transparentnosť vetvenia.
  • rebase je 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.