ホーム DoRuby git stash -u でgit管理外のファイルが消える
git 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

記事を共有

最近人気な記事