bfgの使い方
概要
- gitレポジトリにセキュアな情報を追加してしまった時、過去にさかのぼってgitの記録から消すツール
- 現在の操作しているheadのローカルにそのセキュアな情報が含まれていないことが前提(headはprotect扱いで消せない)
- この例ではパスワードを消すことを記しているが、特定のファイル名を削除する、ファイルサイズが一定以上のものを消すなども可能である
インストール
$ wget https://repo1.maven.org/maven2/com/madgag/bfg/1.14.0/bfg-1.14.0.jar
具体的な操作
mirrorオプションをつけて対象のgitレポジトリをcloneする
$ git clone --mirror <url>
--mirror
をつけると管理構造が得られる
bfgを実行する
$ java -jar bfg-1.14.0.jar --replace-text passwords.txt bfg-sandbox.git
passwords.txt
は削除したい文字列を記したもの
git reflog expire --expire=now --all && git gc --prune=now --aggressive
を実行する
$ cd <url>
$ git reflog expire --expire=now --all && git gc --prune=now --aggressive
pushする
$ git push