はじめに
本来は".gitignore"に設定し、gitに追跡させるべきではない/する必要がないファイル(rails-erdでPDFに出力したER図など)をgithubなどのリモートリポジトリにpushしてしまった際の対応を備忘録として残そうと思います。
"git rm --cashed"を使用する
下記のコマンドを叩けば、ローカルのファイルは残しつつgitの記録(履歴)から削除されます。
#ローカルのファイルは削除されない
git rm --cashed {ファイル名}
ちなみに"--cashed"のオプションをつけないとローカルのファイルも削除されてしまうので注意が必要です。
#ローカルのファイルも削除される
git rm {ファイル名}
".gitignore"にファイル名を追加する
"git rm --cashed"を叩いただけでは、"untracked file(未追跡のファイル)"として扱われるので間違えて再度リモートレポジトリにpushしてしまう可能性があります。
そのため、".gitignore"にローカルにだけ残したいファイル名を追加します。
(今回はpdfなので下記のように記述します)
.gitignore
*.pdf
最後に変更内容をリモートリポジトリに反映
git rm --cashedで削除した状態をリモートレポジトリに反映する必要があるため、commitしてpushすれば完了です。
参考