とあるrubyのプロジェクトを進行中に不要なファイルがたまってきました。
$ git status -b -s
# master
?? a.rb
?? b.rb
上記のファイルは必要ないので、 git clean -fd
を実行します。
$ git clean -fd
Would skip repository vendor/bundle/ruby/2.2.0/bundler/gems/slim-0726c443dfdd
Would remove vendor/bundle/ruby/2.2.0/bin
Would remove vendor/bundle/ruby/2.2.0/build_info
Would remove vendor/bundle/ruby/2.2.0/cache
Would remove vendor/bundle/ruby/2.2.0/doc
Would remove vendor/bundle/ruby/2.2.0/extensions
Would remove vendor/bundle/ruby/2.2.0/gems
Would remove vendor/bundle/ruby/2.2.0/specifications
oh!!!
vendor/bundle
の中のgemが消えてしまいました。。
仕方なく bundle install
するわけですが、なんで .gitignore
の中に入っているはずの、
vendor/bundle
配下のファイルが消えてしまうのでしょう。
自分自身 .gitignore
の書き方にあまり自信がなかったので、
いろいろ調べてみましたが、特に問題なし。
git clean -fdx
とかすれば、ignoreされているファイルを消すこともできるようですね。
が、今回の解決策とはなりません。。
解決策は .gitkeep
をファイルに置くことでした。
vendor/.gitkeep
をコミットすることで解決しました。