🐕
【Git】履歴からファイルを削除する
間違えてパスワードなどが書かれた機密情報を公開してしまったときに、
履歴からもそのファイル情報を削除したい場合があったので。
ほぼ参考にした記事と同じなのですが、自分用のメモとして残しておきます。
使用するコマンド
git filter-branchやgit rebaseは非推奨となったようなので、git filter-repo を使用します。
以下の場合などに使用できます。
- 履歴からファイルを削除する
- 特定のディレクトリを削除する
- 特定のコミット範囲を削除する
- コミットメッセージを変更する
- ブランチのリネームやマージ履歴の修正
手順
- 現在のブランチ確認
git branch
- ブランチ切り替え
git switch [branch name]
- dry runで確認
git filter-repo --dry-run --path [path name] --invert-paths
- 履歴から指定のファイルを強制削除
git filter-repo --force --path [path name] --invert-paths
- 新しいリモートリポジトリを追加してバックアップ
git remote add origin https://github.com/[account name]/[repository name].git
- 変更をプッシュする
git push -f origin [branch name]
参考
Discussion