Sobes.tech
Junior — Middle

Jak rozpoznat příkazy git rebase a git merge a v čem jsou jejich hlavní rozdíly?

sobes.tech AI

Odpověď od AI

git merge a git rebase jsou dva různé příkazy pro integraci změn z jedné větve do druhé, ale fungují odlišně.

  • git merge vytvoří nový merge commit, který spojí historii obou větví a zachová jejich paralelní vývoj. Historie zůstává rozvětvená, což jasně ukazuje, kdy a jak došlo ke sloučení.

  • git rebase "přepisuje" historii tím, že přesune vaše lokální commity na jinou větev, čímž vytvoří lineární historii bez merge commitů. To zjednodušuje historii, ale mění hash commitů.

Hlavní rozdíly:

  • Merge zachovává rozvětvenou historii, rebase činí historii lineární.
  • Po rebase je třeba být opatrný s veřejnými větvemi, protože historie je přepisována.
  • Merge je jednodušší a bezpečnější pro týmovou práci.

Příklad:

# merge
git checkout feature
git merge main

# rebase
git checkout feature
git rebase main

V prvním případě se objeví merge commit, ve druhém budou vaše commity "přesunuty" na vrchol main.