$ cat "dev63.hatenablog.com/entry/2025/03/17/043403.md"
// ブログエントリー — 2025/3/17

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 でプッシュするため、他のメンバーがいる場合は基本的に実施しない

ENTRY: dev63.hatenablog.com/entry/2025/03/17/043403.md
DATE: 2025/3/17
WORDS: 59