Come ripristinare un repository di GitHub per rimuovere i dati sensibili da tutti i commit

A volte capita che si possano inserire alcuni dati sensibili (tipo password, chiavi private, ecc.) all’interno di un repository e che ci si accorga solo dopo molte modifiche, commit e diverso tempo che queste informazioni segrete non dovevano essere rese pubbliche.

Come rimediare? Innanzitutto, io ho installato GitGuardian che mi avvisa se ho commesso un errore del genere, ma non rimuove il codice segreto che devo tenere nascosto. Cosa fare quindi?

On line si possono trovare diverse guide su come eliminare il singolo commit incriminato, ma, sulla base della mia esperienza, trovo molto più comodo ripristinare tutto il repository e ricominciare da capo.

Per prima cosa apriamo il nostro terminaleed entriamo nella cartella del progetto

cd project

Eliminamo la cartella .git

rm -rf .git

Inizializziamo il repository

git init

Aggiungiamo i file al nostro repository locale

git add .

Quindi facciamo il commit

git commit -m "commit di codice pulito"

A questo punto diciamo a git qual è il percorso verso cui deve inviare il commit

git remote add origin "url-remote-repository"

Infine confermiamo l’invio con il sguente comando:

git push --force --set-upstream origin master