Sobes.tech
Junior — Middle

Jak odróżnić polecenia git rebase i git merge i jakie są ich główne różnice?

sobes.tech AI

Odpowiedź od AI

git merge i git rebase to dwa różne polecenia służące do integracji zmian z jednej gałęzi do drugiej, ale działają na różne sposoby.

  • git merge tworzy nowy commit scalający, który łączy historię obu gałęzi, zachowując ich równoległy rozwój. Historia pozostaje rozgałęziona, co wyraźnie pokazuje, kiedy i jak doszło do scalania.

  • git rebase "przepisuje" historię, przesuwając Twoje lokalne commity na inną gałąź, tworząc liniową historię bez commitów scalających. To upraszcza historię, ale zmienia hasze commitów.

Główne różnice:

  • Merge zachowuje historię rozgałęzioną, rebase tworzy historię liniową.
  • Po rebase należy uważać na publiczne gałęzie, ponieważ historia jest przepisywana.
  • Merge jest prostszy i bezpieczniejszy w pracy zespołowej.

Przykład:

# merge
git checkout feature
git merge main

# rebase
git checkout feature
git rebase main

W pierwszym przypadku pojawi się commit scalający, w drugim — Twoje commity zostaną "przesunięte" na szczyt gałęzi main.