Gitのリモートリポジトリから特定のファイルを削除する
しょっちゅう同じ間違いを繰り返すので備忘録。
GitHubにPushするときに.gitignoreを用意していない状態で、以下のように全ての変更をindexにあげてcommit&pushしてしまう。
$ git add . $ git commit -m "hogehoge" $ git push orogin master
変更のあるファイルだけを指定してindexにあげればよい(add xxx.rb)のだけどめんどくさくてついついadd .
してしまう。
すると.DS_Store
などの不必要なファイルまでがGitHubのリモートリポジトリに登録されてしまう。
いつも後になってからこのファイルをリモートリポジトリから消したくなるので、そのときの手順。
手順
git rm
する。- 変更をcommitする。
- リモートにpushする。
削除
ローカルのファイルも一緒に削除したい場合
$ git rm {削除したいファイル}
ローカルのディレクトリごと一緒に削除したい場合
$ git rm -r {削除したいディレクトリ}
ローカルのファイルは残したい場合
$ git rm --cached {削除したいファイル}
変更をcommit
$ git commit -m "hogehoge"
push
$ git push origin master
まとめ
.gitignoreを面倒がらずに用意しよう!