Da Anonimo (non verificato) , 29 Aprile 2026

Perche rebase

Rebase riscrive il branch in modo che appaia partire dalla punta di un altro branch, riproducendo i commit uno per uno. Il risultato e una storia lineare che si legge come una storia.

Il rebase base

git checkout feature/login
git fetch origin
git rebase origin/main
git status
git add <file>
git rebase --continue
git rebase --abort

Rebase interattivo

git rebase -i HEAD~5
pick 1a2b3c4 Add login form
pick 5d6e7f8 Fix typo
pick 9a0b1c2 Refactor auth helper
  • reword - mantieni il commit, modifica il messaggio.
  • edit - pausa per modificare.
  • squash - combina nel precedente, fonde i messaggi.
  • fixup - combina, scarta il messaggio.
  • drop - rimuovi il commit.

La regola d'oro

Mai fare rebase di commit pushati e consumati da altri.

Workflow autosquash

git commit --fixup <sha>
git commit --fixup <sha>
git rebase -i --autosquash main

Rebase versus merge

Entrambi integrano modifiche; la differenza filosofica e se preservare la storia di sviluppo o presentare una narrazione curata.

Rerere per conflitti ripetuti

git config --global rerere.enabled true