White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

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"と書いてあるメディアは信用しないほうが良いと思います。