Sobes.tech
Junior — Middle

Hoe onderscheid je de commando's git rebase en git merge en wat zijn hun belangrijkste verschillen?

sobes.tech AI

Antwoord van AI

git merge en git rebase zijn twee verschillende commando's om wijzigingen van de ene tak te integreren in de andere, maar ze werken op verschillende manieren.

  • git merge maakt een nieuwe merge-commit aan die de geschiedenis van beide takken samenvoegt, terwijl ze hun parallelle ontwikkeling behouden. De geschiedenis blijft vertakt, wat duidelijk aangeeft wanneer en hoe de samenvoeging plaatsvond.

  • git rebase "herschrijft" de geschiedenis door je lokale commits bovenop een andere tak te plaatsen, waardoor een lineaire geschiedenis ontstaat zonder merge-commits. Dit vereenvoudigt de geschiedenis, maar wijzigt de commit-hashes.

Belangrijkste verschillen:

  • Merge behoudt de vertakte geschiedenis, rebase maakt de geschiedenis lineair.
  • Na een rebase moet je voorzichtig zijn met openbare takken, omdat de geschiedenis wordt herschreven.
  • Merge is eenvoudiger en veiliger voor samenwerking.

Voorbeeld:

# merge
git checkout feature
git merge main

# rebase
git checkout feature
git rebase main

In het eerste geval verschijnt een merge-commit, in het tweede worden je commits "verplaatst" naar de top van main.