リモートリポジトリから、ファイルを削除する。また、履歴からもファイルを削除する。
参考にした記事:https://qiita.com/go_astrayer/items/6e39d3ab16ae8094496c
リモートリポジトリをローカルにクローンする。
git clone https://github.com/user/repository
カレントディレクトリを移動する。
cd ./local_repository
下記のどちらかでファイルまたはディレクトリを、履歴から削除する。
git filter-branch --tree-filter "rm -f [消したいファイルパス]" HEAD
git filter-branch --tree-filter "rm -f -r [消したいディレクトリパス] " HEAD
返ってくる
WARNING: git-filter-branch has a glut of gotchas generating mangled history
rewrites. Hit Ctrl-C before proceeding to abort, then use an
alternative filtering tool such as 'git filter-repo'
(https://github.com/newren/git-filter-repo/) instead. See the
filter-branch manual page for more details; to squelch this warning,
set FILTER_BRANCH_SQUELCH_WARNING=1.
Proceeding with filter-branch...
~~~~~~~
Ref 'refs/heads/main' was rewritten
ファイルそのものを削除する。
git rm ./notebook/app_key/secretkey_gcp.json
最適化をする。
git gc --aggressive --prune=now
返ってくる
Enumerating objects: 57, done.
Counting objects: 100% (57/57), done.
Delta compression using up to 8 threads
Compressing objects: 100% (53/53), done.
Writing objects: 100% (57/57), done.
Total 57 (delta 30), reused 21 (delta 0), pack-reused 0
[重要]ファイルに何らかの変更を加える。
コミットを上げて、リモートリポジトリに反映させる。
git add . #ステージに上げる
git commit -m "delete app_key in history" #コミットする
git push -f #pushする