はじめに
git stashって便利ですよね〜
コミットやステージングまではしたくない変更差分があって、
その状態でcheckoutしたい、みたいな時ってあると思います。
そんな時、
git stash
とすることで簡単に変更差分を避難させることが出来るので、重宝しています!
困ったこと、その原因...
ただ、このコマンドをしても
$ git stash
No local changes to save
となってしまったことがありました...
原因はgit stash
が対象にとることが出来る変更差分は
- ステージングしている(
git add
をしている)ファイル - または、過去にコミットしたことがあり、追跡対象になっているファイル
こういった条件を満たしている時のようでした...
つまり、このメッセージが出ているということは、
上記の条件を満たしておらず、
追跡されていないファイルということ...
例えば、
新しくファイルを作って、それをステージングしたりコミットしたりしていない
こういった場合にはgit stash
とするだけではダメでした...
解決策
ではどうするのかと言うと、
git stash -u
このようにします。
-u
を付与することで、未追跡のファイル(untracked)も含めて避難させることが出来ます。
参照