github
Rimozione di dati sensibili o file di grandi dimensioni
Ricerca…
introduzione
Osservazioni
Spiega ai tuoi collaboratori di rebase, non unire, eventuali rami creati dalla tua vecchia cronologia del repository (contaminato). Un commit di unione potrebbe reintrodurre parte o tutta la storia contaminata che hai appena passato alla purga.
Dopo che è trascorso un po 'di tempo e sei sicuro che git filter-branch non ha effetti collaterali indesiderati, puoi forzare la dereferenziazione di tutti gli oggetti nel tuo repository locale e raccogliere i dati con i seguenti comandi (usando Git 1.8.5 o successivi):
git for-each-ref --format = 'delete% (refname)' refs / original | git update-ref --stdin
git reflog expire --expire = now --all
git gc --prune = now
Utilizzando il filtro-ramo
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA' \
--prune-empty --tag-name-filter cat -- --all
Aggiungi il tuo file con dati sensibili a .gitignore per assicurarti di non commetterlo accidentalmente di nuovo.
echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"
Invia il tuo repo locale a GitHub
git push origin --force --all
Per rimuovere il file sensibile dalle tue versioni codificate, devi anche forzare a spingere i tuoi tag Git:
git push origin --force --tags
Uso del detergente Repo BFG
BFG Repo cleaner è un'alternativa al git filter-branch. Può essere usato per rimuovere dati sensibili o file di grandi dimensioni che sono stati commessi in modo errato come i binari compilati dalla fonte. È scritto in Scala.
Sito web del progetto: BFG Repo Cleaner
Requisiti
Java Runtime Environment (Java 7 o versione successiva - BFG v1.12.3 era l'ultima versione per supportare Java 6). La libreria Scala e tutte le altre dipendenze sono piegate nel contenitore scaricabile.
Rimuovi file con dati sensibili
bfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA