その他
    ホーム技術発信DoRubygit stash -u でgit管理外のファイルが消える

    git stash -u でgit管理外のファイルが消える

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    git stash -u で.gitignoreに記述されているディレクトリやファイルが消えてしまうケースがあるようです。

    git stash -u
    

    新規作成されたファイルなどuntrackedなファイルも
    まとめてstashしてくれる-uオプションですが、
    挙動に注意する必要があるとのことです。
     

    ローカル環境でrailsを使っていて、
    知らないうちにbundlerが使えなくなってることがあり、
    しばらく謎&困っていたのですが、
    どうやらpre-pushで走らせていたシェルスクリプト内で
    git stash -uを使っていたのが原因のようでした。
     

    bundle install もエラーが出て、
    よくみるとvendor/bundler配下のrubyのファイル群がごっそり消えていました。
     

    調べてみると.gitignoreの記述の仕方によって
    ここに書かれているディレクトリやファイルが消えてしまうとのこと。

    結局スナップショットからvendor/bundler配下のファイルを復元して事なきを得ましたが
    git管理外にしたファイルが消えてしまってはたまったもんじゃないないですね。。
     

    git stash を使うときは、一度addしてから

    git stash save "コメント"
    

    とした方がよさそうです。
    皆さんもご注意ください。
     
     

    参考
    https://i-beam.org/2015/11/12/124405/
    https://qiita.com/yamamoto_hiroya/items/f4d6922e823291e6e790