Git Rebase vs Merge
Ultimo aggiornamento
Sia git merge sia git rebase portano il lavoro di un branch in un altro. git merge collega le due cronologie con un commit di merge, conservando esattamente ciò che è successo. git rebase riapplica i tuoi commit uno alla volta sopra l'altro branch, producendo una cronologia pulita e lineare, ma riscrivendo i tuoi commit nel processo.
La regola d'oro: non fare mai il rebase di commit che altri hanno già scaricato con pull. Provali entrambi nel terminal playground: una vera shell nel tuo browser.
A confronto
| Comportamento | git merge | git rebase |
|---|---|---|
| Forma della cronologia | Ramificata, con un commit di merge | Lineare |
| Riscrive i commit | No | Sì |
| Sicuro sui branch condivisi | Sì | No |
| Conserva la cronologia esatta | Sì | No |
| Facile capire quando è avvenuto un merge | Sì | Più difficile |
Sintassi
| Comando | Cosa fa |
|---|---|
git merge feature | Unisce feature nel branch corrente |
git merge --no-ff feature | Crea sempre un commit di merge |
git rebase main | Riapplica i commit del branch corrente su main |
git rebase -i HEAD~3 | Modifica in modo interattivo gli ultimi 3 commit |
git rebase --abort | Annulla un rebase in corso |
Domande frequenti su git rebase vs merge
Qual è la differenza tra git rebase e git merge?
git merge combina due branch creando un nuovo commit di merge che unisce le loro cronologie, mantenendo la traccia esatta di ciò che è successo. git rebase invece sposta i tuoi commit in modo che vengano riapplicati sopra un altro branch, producendo una cronologia lineare ma riscrivendo quei commit con nuovi hash. Il merge conserva la cronologia; il rebase la riscrive per renderla più pulita.Quando conviene usare il merge e quando il rebase?
main con una cronologia pulita. Molti team fanno il rebase in locale e poi il merge in main.Qual è la regola d'oro del rebase?
Il rebase causa meno conflitti del merge?
Posso esercitarmi online?
git merge e git rebase in una vera shell nel tuo browser, senza installare nulla. Il corso interattivo gratuito di Git di Coddy spiega anche merge e rebase passo dopo passo.