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.