Ricerca…


introduzione

Se si commettono dati sensibili, come una password o una chiave SSH in un repository Git, è possibile rimuoverli dalla cronologia. Per rimuovere completamente i file indesiderati dalla cronologia di un repository, è possibile utilizzare il comando git filter-branch o BFG Repo-Cleaner.

Osservazioni

  1. 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.

  2. 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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow