Sobes.tech
Junior — Middle

Jaký je rozdíl mezi příkazy 'git merge' a 'git rebase' při slučování větví v systému správy verzí Git?

sobes.tech AI

Odpověď od AI

Příkazy git merge a git rebase se používají k sloučení změn z jedné větve do druhé, ale dělají to odlišně:

  • git merge vytvoří nový commit sloučení, který spojí historii obou větví a zachová jejich paralelní historii.

    • Příklad:
      git checkout master
      git merge feature-branch
      
    • Historie větví zůstává rozvětvená, ukazuje, kdy a které větve byly sloučeny.
  • git rebase přesune (přepíše) commity z jedné větve na druhou, čímž vznikne lineární historie bez commitů sloučení.

    • Příklad:
      git checkout feature-branch
      git rebase master
      
    • Je to, jako byste začali větev z posledního commitu masteru, což zjednodušuje historii, ale mění hash commitů.

Kdy používat:

  • merge je vhodný pro zachování celé historie a když je důležitá transparentnost větvení.
  • rebase je užitečný pro zjednodušení historie před sloučením do hlavní větve, aby se předešlo zbytečným commitům sloučení.

Je důležité pamatovat, že rebase mění historii, proto se nedoporučuje dělat rebase na veřejných větvích, které jsou již dostupné ostatním.