Post Image

Resetta la Storia di Git: Come Ricominciare da Zero con l'opzione --orphan

02 lug 2024

Git è uno strumento potente per il controllo della versione, tuttavia, nel lavoro quotidiano, è necessario, a volte, resettare la storia dei commit per vari motivi: eliminazione di informazioni sensibili, la riduzione della complessità o semplicemente per avere un nuovo inizio. Una delle tecniche più efficaci per resettare la storia di un repository è data dall'utilizzo dell'opzione --orphan.

In questo articolo, ti guideremo attraverso i passaggi per utilizzare --orphan per creare un nuovo commit iniziale e ripartire da zero.

Perché Utilizzare --orphan?

L'opzione --orphan consente di creare un nuovo branch senza commit genitori. Il branch sarà completamente indipendente dalla cronologia dei commit del repository.

L'opzione --orphan è utile quando vuoi:

  • Eliminare tutta la cronologia dei commit: Ideale se hai bisogno di rimuovere completamente la storia passata del repository.
  • Iniziare una nuova storia di commit: Perfetto per progetti che hanno subito cambiamenti radicali e necessitano di un nuovo inizio.
  • Mantenere la connessione con il repository remoto: Continua a utilizzare lo stesso repository remoto senza doverne creare uno nuovo da zero.

Come resettare un repository con --orphan

Di seguito, sono elencati i passi per poter resettare un repository con l'opzione --orphan.

Passo 1: Backup del Repository

Prima di avviare la procedura di reset del tuo repository, considerando che essa è un'operazione potenzialmente pericolosa, conviene sempre che tu faccia un backup del repository. Il backup consente, in qualsiasi momento, di poter ripristinare lo stato iniziale.

Passo 2: Crea un Nuovo Branch Orfano

Per creare un nuovo branch orfano, spostati sulla root della cartella del progetto (quella dove si trova la cartella .git), ed esegui:

cd /path/basedir/progetto
git checkout --orphan nuovo-branch-orfano

Il precedente comando ha creato un branch orfano, di nome nuovo-branch-orfano.

Passo 3: Aggiungi file e Primo Commit

Creato il nuovo branch orfano, ora è il momento di versionare i file che desideri sul nuovo branch e storicizzare il tutto con un commit.

I comandi per fare ciò sono i seguenti:

git add . # in questo caso versiono tutti i file
git commit -m "Primo commit"

Passo 4: Elimina il Vecchio Branch e Rinomina il Nuovo

A questo punto puoi eliminare il vecchio branch, main o master, e rinominare il nuovo branch orfano per farlo diventare il nuovo main o master.

git branch -D main # Rimuove il branch main corrente
git branch -m main # Rinomina il branch orfano in main

Passo 5: Push al Repository Remoto

L'ultimo passo prevede il push del nuovo branch verso un repository remoto, che ancora ha memorizzato il vecchio branch main ormai rimosso. Per eseguire il push dovrai utilizzare l'opzione -f che forza la sovrascrittura di quanto memorizzato.

Per eseguire il push forzato, esegui:

git push -f origin main

Conclusione

L'utilizzo dell'opzione --orphan è un metodo efficace per resettare la storia dei commit di un repository Git e ripartire da zero.

Seguendo i passaggi descritti in questo articolo, potrai creare un nuovo inizio per il tuo progetto mantenendo la connessione con il repository remoto.

Ricorda sempre di fare un backup e informare i tuoi collaboratori prima di eseguire operazioni che possono alterare drasticamente la cronologia del repository.