Git: 新規ファイルも退避するなら git stash -u
普通の git stash は未追跡ファイルを残す。作ったばかりのファイルも含めて片付けたいときは git stash -u(--include-untracked)。
使う場面
作業ツリーをきれいにして別ブランチへ移りたいのに、新規追加したファイルだけ残って邪魔なとき。「stash したのにまだある」の定番原因。
やり方
bash
# 追跡済みの変更だけ退避(未追跡は残る)
git stash
# 未追跡ファイルも含めて退避
git stash -u
# または
git stash --include-untracked
# 戻す
git stash pop- 無視されているファイル(
.gitignore)まで含めたい場合は-a/--all。 - インデックスだけ残して退避するなら既存の Git: git stash push --keep-index -m / --staged で一部だけ退避して作業を切り替える。
注意点
-uは未追跡ファイルを一時的に消して退避するので、stash を落とすと復元できなくなる。重要な新規ファイルは先にgit addしてから通常の stash でもよい。- バイナリや巨大な生成物が未追跡だと stash が重くなる。先に掃除するか
.gitignoreに入れる。