gitでファイルを消す方法~真っ先にgit rmを勧める奴は地獄の業火に焼かれろ~
(この記事は以前Qiitaに掲載していたものの転載になります)
はじめに
git rmだと過去の履歴は消えません。git filter-branchを使いましょう。
https://qiita.com/go_astrayer/items/6e39d3ab16ae8094496c
はじめに
例えばパスワードファイルなんかを間違ってcommit & pushしたときに、リポジトリから完全に消したいといった事があるかと思います。その時に「git ファイル 消す 方法」などでググると先頭の方に
git rm --cache
とか解説している記事が見つかります。しかし、コレだとダメです。
どうダメなのか
gitの用語に詳しくないので解説が曖昧になります。
git rmだと、"ファイルを消した"という記録を追記します。なので最新のcommitからは見えなくなります。一方で過去の履歴には相変わらず残っています。githubならcommitというとこを見ていけば直ぐに見つかります。
その為、上のURLにある通りの形で実行して行く必要があります。
間違ってコミットしないようにするには
.gitignoreというファイルに、ファイル名を書き込むことで回避できます。詳しくはgitignoreで検索してみてください。
余談
本件、"git ファイル 完全に消す 方法"とかで検索すれば先頭に上の記事が出てくるのですが、git rmを勧めるTechAc◯ademyとかいうとこの記事も出てくるんですよね。それに初心者だと検索方法もわからないでしょうし、"git ファイル 消す 方法"とかで検索して安易にgit rmだけ実行して後で大惨事になりそうです。
とりあえず"git rm"と書いてあるメディアは信用しないほうが良いと思います。