git stash
コマンドの概要
ワーキングツリー、インデックスの内容を一時的に別の場所に保存するコマンド。
ブランチをgit switch
するとき、ワーキングツリーとインデックスはコミット済みでクリアである必要があるので、まだコミットできないけどブランチを切り替える必要がある場合などに利用する。
コマンドの使い方
退避したい状況でgit stash
を実行する。
$ git stash
Saved working directory and index state WIP on branch: aaaaaaa commit
と、ワーキングツリー、インデックスの内容とともに、実行したブランチ、そのときのHEAD
が記録される。
一覧を確認するには、
$ git stash list
stash@{0}: WIP on branch: aaaaaaa commitA
stash@{1}: WIP on branch: bbbbbbb commitB
// 差分も表示するとき
$ git stash list -p
stash
の内容を確認するには
1$ git stash show stash@{0}
stashしたものをワーキングツリーに戻すには
$ git stash apply stash@{0}
// 直近のstashのstash@{0}がデフォルト指定されているので、stash@{0}は省略可能。
$ git stash apply
また、git stash apply
は現在チェックアウトしているブランチに戻すので、ブランチを間違えてしまったときにも使える。
stashを削除する
stash は消さないとどんどんたまっていくので、不要なstash
を削除するには
1$ git stash drop stash@{0}
apply
しつつ、drop
するには、pop
1$ git stash pop stash@{0}
stash
をすべて削除するには、
1$ git stash clear