Rebase interattivo della cronologia
Utilizzi il rebase interattivo per riscrivere la cronologia dei commit, unirli, riordinarli o modificarne i messaggi prima del push.
Rebase interattivo della cronologia è una lezione Git & GitHub Professional Workflow gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Git & GitHub Professional Workflow, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Git & GitHub Professional Workflow include 4 lezioni in totale.
Scopra il rebase interattivo
Benvenuto a uno strumento Git molto potente: il rebase interattivo! Consente di riscrivere la cronologia dei commit del progetto prima di condividerla con altri.
Lo si può considerare una macchina del tempo per i commit, che permette di ripulire, combinare o riordinare le modifiche per creare una storia del lavoro chiara e lineare.
Perché ripulire la cronologia?
Perché riscrivere la cronologia?
- Chiarezza: renda il registro dei commit del progetto facile da leggere e comprendere.
- Concisione: combini piccoli commit incrementali in un'unica modifica significativa.
- Debug: una cronologia ordinata è utile quando si usano strumenti come
git bisectper individuare il punto in cui è stato introdotto un bug. - Pull request migliori: presenti ai collaboratori un insieme di modifiche rifinito.
Avviare un rebase interattivo
Per avviare un rebase interattivo, utilizzerà il comando git rebase -i. Deve specificare di quanti commit desidera tornare indietro.
Ad esempio, per eseguire il rebase degli ultimi 3 commit del branch corrente, userebbe:
git rebase -i HEAD~3Si aprirà un editor che mostra gli ultimi 3 commit e i comandi disponibili.
I comandi dell'editor del rebase
Quando avvia un rebase interattivo, Git apre un editor di testo con un elenco di commit e le relative istruzioni. Ogni commit inizia con un comando:
pick: usa il commit così com'è.reword: usa il commit, ma ne modifica il messaggio.edit: usa il commit, ma mette in pausa l'operazione per modificarlo.squash: combina il commit con quello precedente, unendo i messaggi.fixup: combina il commit con quello precedente, eliminando il messaggio di questo commit.drop: rimuove completamente il commit.
Esempio: modificare il messaggio di un commit
Supponiamo che ci sia un errore di battitura nel messaggio di un commit. Può usare reword per correggerlo. Sostituisca pick con reword accanto al commit che desidera modificare:
pick 5a6b7c8 Add new feature pick 1d2e3f4 Fix typo in docs reword 9g0h1i2 Implement login screen
Dopo aver salvato e chiuso l'editor, Git chiederà di modificare il messaggio del commit 9g0h1i2.
Esempio: combinare i commit
Spesso si creano diversi piccoli commit correlati che potrebbero formarne uno solo. Usi squash per combinarli.
pick a1b2c3d Initial feature commit squash e4f5g6h Add more details fixup i7j8k9l Fix small bug
In questo caso, e4f5g6h verrà unito a a1b2c3d, combinandone i messaggi. Anche i7j8k9l verrà unito a a1b2c3d, ma il suo messaggio verrà eliminato (fixup).
Esempio: eliminare i commit
Se ha un commit sperimentale che non le serve più, può semplicemente usare drop per eliminarlo dalla cronologia. Le basta sostituire pick con drop oppure eliminare completamente la riga:
pick 1122334 Initial setup drop 5566778 Test experimental feature pick 9900112 Add user authentication
Dopo il salvataggio, il commit 5566778 verrà completamente rimosso dalla cronologia del branch.
Esempio: riordinare i commit
Può anche modificare l'ordine dei commit. Le basta tagliare e incollare le righe nell'editor per riordinarle. Git applicherà le modifiche nel nuovo ordine.
Ordine originale:
pick abcdef1 Add feature A pick 1234567 Add feature B
Nuovo ordine:
pick 1234567 Add feature B pick abcdef1 Add feature A
Proceda con cautela: riordinare i commit potrebbe introdurre conflitti se questi dipendono l'uno dall'altro.
La regola d'oro: non esegua il rebase della cronologia condivisa!
Questo è fondamentale: non esegua mai il rebase di commit già inviati a un repository remoto condiviso (come GitHub o GitLab) che potrebbero essere stati scaricati da altri.
Il rebase riscrive gli identificativi dei commit. Se altri hanno basato il proprio lavoro sui commit originali, i commit sottoposti a rebase appariranno come una cronologia completamente diversa, causando conflitti importanti e confusione per tutti.
Esegua il rebase solo dei commit presenti esclusivamente nel branch locale!
Verifica del comando rebase
Ha tre commit: A (Initial), B (Minor fix), C (Refactor). Desidera combinare B con A, mantenendo il messaggio originale di A, e lasciare C invariato. Quali comandi userebbe nell'editor del rebase interattivo (dal più vecchio al più recente)?
Riepilogo del rebase interattivo
Ha imparato a usare il potente comando git rebase -i!
- Consente di riscrivere la cronologia locale dei commit.
- Può modificare i messaggi con
reword, combinare i commit consquashofixup, eliminare le modifiche indesiderate condrope persino riordinare i commit. - Ricordi sempre la regola d'oro: NON esegua mai il rebase di commit già inviati a un remoto condiviso.
Imparare a usare il rebase interattivo aiuta a mantenere una cronologia del progetto ordinata e comprensibile!
Domande Frequenti
La lezione «Rebase interattivo della cronologia» è gratuita?
Sì — il testo completo di «Rebase interattivo della cronologia» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Git & GitHub Professional Workflow, passa a CoddyKit PRO. Il corso Git & GitHub Professional Workflow include 4 lezioni in totale.
Cosa imparerò in «Rebase interattivo della cronologia»?
Utilizzi il rebase interattivo per riscrivere la cronologia dei commit, unirli, riordinarli o modificarne i messaggi prima del push. Eserciti Git & GitHub Professional Workflow con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Git & GitHub Professional Workflow?
Non è richiesta alcuna esperienza precedente. Git & GitHub Professional Workflow su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Rebase interattivo della cronologia»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Git & GitHub Professional Workflow?
Sì. Ogni lezione Git & GitHub Professional Workflow include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Risoluzione manuale dei conflitti di merge
- Rebase interattivo della cronologia
- Cherry-pick dei commit
- Usare Git Rerere per riutilizzare le risoluzioni dei conflitti