0Pricing
Git & GitHub Professional Workflow · Lezione

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 bisect per 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~3

Si 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 con squash o fixup, eliminare le modifiche indesiderate con drop e 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

  1. Risoluzione manuale dei conflitti di merge
  2. Rebase interattivo della cronologia
  3. Cherry-pick dei commit
  4. Usare Git Rerere per riutilizzare le risoluzioni dei conflitti
← Torna a Git & GitHub Professional Workflow