Rimuovere i dati dei repository

Completato

Anche se uno dei vantaggi di Git è la possibilità di conservare lunghe cronologie per i repository in modo efficiente, in alcuni casi è necessario rimuovere i dati.

Le situazioni più comuni sono quelle in cui è necessario:

  • Ridurre significativamente le dimensioni di un repository rimuovendo la cronologia.
  • Rimuovere un file di grandi dimensioni caricato accidentalmente.
  • Rimuovere un file sensibile che non sarebbe dovuto essere caricato.

Se si esegue il commit di dati sensibili (ad esempio password e chiavi) in Git, è possibile rimuoverli dalla cronologia. In genere si usano due strumenti:

Strumento git filter-repo

Lo strumento git filter-repo consente di riscrivere la cronologia.

Il repository filter-repo principale contiene una libreria per la creazione di strumenti di riscrittura della cronologia. Gli utenti con esigenze specifiche possono creare rapidamente strumenti per la riscrittura di una cronologia completamente nuovi.

Nota

Altre informazioni sono presenti nel repository git-filter-repo.

BFG Repo-Cleaner

BFG Repo-Cleaner è uno strumento open source comunemente usato per l'eliminazione o la "correzione" del contenuto nei repository. È più semplice da usare rispetto al comando git filter-branch. Per un singolo file o set di file, usare l'opzione --delete-files:

$ bfg --delete-files file_I_should_not_have_committed

La shell Bash seguente mostra come trovare tutte le posizioni in cui è presente un file denominato passwords.txt nel repository. Per sostituire tutto il testo presente, è inoltre possibile usare l'opzione --replace-text:

$ bfg --replace-text passwords.txt

Per altre informazioni, vedi:

Riscrivere rapidamente la cronologia dei repository Git.

Rimozione di file da Git Large File Storage.

Rimozione di dati sensibili da un repository.

BFG Repo Cleaner.