Sobes.tech
Junior — Middle

Come distinguere i comandi git rebase e git merge e quali sono le loro principali differenze?

sobes.tech AI

Risposta dell'AI

git merge e git rebase sono due comandi diversi per integrare le modifiche da un branch all'altro, ma funzionano in modo diverso.

  • git merge crea un nuovo commit di merge che unisce la storia di entrambi i branch, mantenendo lo sviluppo parallelo. La storia rimane ramificata, mostrando chiaramente quando e come è avvenuto il merge.

  • git rebase "riscrive" la storia, spostando i tuoi commit locali sopra un altro branch, creando una storia lineare senza commit di merge. Questo semplifica la storia, ma cambia gli hash dei commit.

Principali differenze:

  • Merge mantiene la storia ramificata, rebase rende la storia lineare.
  • Dopo un rebase, bisogna fare attenzione ai branch pubblici, poiché si riscrive la storia.
  • Merge è più semplice e più sicuro per il lavoro di squadra.

Esempio:

# merge
git checkout feature
git merge main

# rebase
git checkout feature
git rebase main

Nel primo caso apparirà un commit di merge, nel secondo, i tuoi commit saranno "spostati" in cima a main.