Git Branch & Fusione (Merge/Rebase) Avanzato Tutti gli OS

git rebase

Riapplica i commit correnti sopra la punta di un altro branch creando una cronologia lineare.

ATTENZIONE: Comando Critico / Distruttivo
Non eseguire mai il rebase su rami pubblici o condivisi già pubblicati su origin, poiché riscrive gli hash SHA dei commit.
Sintassi del comando
>_git rebase [OPZIONI] [___TKN_ARG_0___] [___TKN_ARG_1___]
#git #history #rebase #squash

Descrizione & Funzionamento

Fondamentale per mantenere una storia pulita ed eliminare i commit di merge inutili. In modalità interattiva (`-i`) permette di unire (squash), modificare, riordinare o eliminare singoli commit.

Parametri, Flag & Opzioni (4)

Riferimento CLI
Flag / Opzione Formato / Default Descrizione Esempio Rapido
-i o --interactive N/D Avvia la sessione interattiva per modificare, accorpare (squash) o eliminare commit.
git rebase -i HEAD~4
--onto <NUOVO_BASE> <VECCHIO_BASE> Trapianta una serie di commit su una base completamente nuova.
git rebase --onto main feat-old feat-new
--abort N/D Interrompe l'operazione di rebase e ripristina il branch allo stato precedente.
git rebase --abort
--continue N/D Prosegue il rebase dopo aver risolto i conflitti e aggiunto i file modificati.
git rebase --continue

Esempi d'Uso Pratico (1)

#1 Squash degli ultimi 3 commit in un unico commit pulito

Pulizia cronologia PR
Terminale
$git rebase -i HEAD~3

Apre l'editor di testo dove è possibile sostituire `pick` con `squash` (o `s`) per accorpare i commit prima di aprire una Pull Request.

Output Atteso:
pick e4a1b2c Aggiunta funzionalità login
squash 7b8c9d0 Fix typo nel controller
squash 1a2b3c4 Aggiornamento test unitari