Eliminare i dati del repository

Completato

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

Le situazioni più comuni sono quelle in cui si vuole:

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

Se si esegue il commit dei dati sensibili (ad esempio, password, chiave) in Git, è possibile rimuoverli dalla cronologia. Vengono comunemente usati due strumenti:

Strumento git filter-repo

Git filter-repo è uno strumento per la riscrittura della cronologia.

Il filtro-repo principale contiene una libreria per creare strumenti di riscrittura della cronologia. Gli utenti con esigenze specializzate possono creare rapidamente nuovi strumenti di riscrittura della cronologia.

Nota

Altri dettagli sono disponibili nel repository git-filter-repo.

BFG Repo-Cleaner

BFG Repo-Cleaner è uno strumento open source comunemente usato per eliminare o "correggere" il contenuto nei repository. È più facile 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

Il bash seguente mostra come trovare tutte le posizioni in cui è presente un file denominato passwords.txt nel repository. Inoltre, per sostituire tutto il testo in esso contenuto, è possibile eseguire l'opzione --replace-text:

$ bfg --replace-text passwords.txt

Per altre informazioni, vedere:

Riscrivere rapidamente la cronologia del repository Git.

Rimozione di file da Git Large File Storage.

Rimozione di dati sensibili da un repository.

BFG Repo Cleaner.