リポジトリ データを消去する

完了

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 リポジトリの履歴をすばやく書き換える

ファイルを Git Large File Storage から削除する

リポジトリからの機微なデータの削除

BFG Repo Cleaner