Githubの履歴から特定ファイルを完全削除
影響範囲: 全ての履歴から完全削除(ファイルの痕跡も消える)
使うケース: 機密情報(APIキー、パスワード)を含むファイルを誤ってコミットした場合
手順
# 過去の履歴からファイルを完全削除
git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch <削除したいファイル>" \
--prune-empty --tag-name-filter cat -- --all
# ローカルリポジトリをクリーンアップ
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now --aggressive
# GitHubに強制プッシュ(**注意**: これまでの履歴が書き換わる)
git push origin --force --all
⚠ 注意:
--forceでプッシュするため、他のメンバーがいる場合は基本的に実施しない