リポジトリ データを消去する
Git のベネフィットの 1 つは、リポジトリの長い履歴を効率的に保持できることですが、データの消去が必要な場合もあります。
最も一般的な状況は、次のことを行いたい場合です。
- 履歴を削除して、リポジトリのサイズを大幅に縮小する。
- 誤ってアップロードされた大きなファイルを削除する。
- アップロードされるべきではなかった機密ファイルを削除する。
機密データを (パスワード、キーなど) を Git にコミットした場合は、履歴から削除することができます。 一般的には 2 つのツールが使用されます。
git filter-repo ツール
git filter-repo は、履歴を書き換えるためのツールです。
その core filter-repo には、履歴書き換えツールを作成するためのライブラリが含まれています。 特殊なニーズを抱えたユーザーが、まったく新しい履歴書き換えツールをすばやく作成できます。
Note
詳細については、git-filter-repo リポジトリを参照してください。
BFG Repo-Cleaner
BFG Repo-Cleaner は、リポジトリ内のコンテンツを削除または "修正" するために一般的に使用されるオープンソース ツールです。 git filter-branch コマンドよりも簡単に使用できます。 1 つのファイルまたはファイルのセットの場合は、--delete-files オプションを使用します。
$ bfg --delete-files file_I_should_not_have_committed
次の Bash は、passwords.txt という名前のファイルがリポジトリに存在する場所をすべて検索する方法を示しています。 また、その中のすべてのテキストを置き換えるには、--replace-text オプションを実行します。
$ bfg --replace-text passwords.txt
詳細については、次を参照してください。
ファイルを Git Large File Storage から削除する。