🐕

【Git】履歴からファイルを削除する

に公開

間違えてパスワードなどが書かれた機密情報を公開してしまったときに、
履歴からもそのファイル情報を削除したい場合があったので。

ほぼ参考にした記事と同じなのですが、自分用のメモとして残しておきます。

使用するコマンド

git filter-branchやgit rebaseは非推奨となったようなので、git filter-repo を使用します。

以下の場合などに使用できます。

  • 履歴からファイルを削除する
  • 特定のディレクトリを削除する
  • 特定のコミット範囲を削除する
  • コミットメッセージを変更する
  • ブランチのリネームやマージ履歴の修正

手順

  1. 現在のブランチ確認
git branch
  1. ブランチ切り替え
git switch [branch name]
  1. dry runで確認
git filter-repo --dry-run --path [path name] --invert-paths
  1. 履歴から指定のファイルを強制削除
git filter-repo --force --path [path name] --invert-paths
  1. 新しいリモートリポジトリを追加してバックアップ
git remote add origin https://github.com/[account name]/[repository name].git
  1. 変更をプッシュする
git push -f origin [branch name]

参考

https://zenn.dev/honahuku/scraps/f730a41bf9e10b

Discussion