git stash の使い方
作業を一時しまう
書き方
git stash [-u] [-m メモ]
git stash push [-m メモ] -- パス
git stash list
git stash pop / apply [stash@{n}]
git stash drop / show [-p]
git stash branch 名前 [stash@{n}]まだコミットしたくない変更を一時的に退避して、作業ツリーをきれいにします。pop で戻して一覧からも消します。
よく使うオプション
| オプション | 意味 |
|---|---|
-u | 追跡していないファイルもしまう |
-m "メモ" | しまうときにメモを付ける |
list | しまったものの一覧 |
pop | いちばん新しいものを戻し、一覧から消す |
apply | 戻すが、一覧には残す |
drop | 一覧から消す |
show -p | しまった変更の中身を見る |
例
$ git stashSaved working directory and index state WIP on main: 9c1e2f4 メニューを足すコミットしていない変更をしまい、作業ツリーをきれいにします。急な別の作業に移るときに使います。
$ git stash -u -m "検索の途中"
新しいファイルも含めて、メモを付けてしまいます。
$ git stash liststash@{0}: On main: 検索の途中
stash@{1}: WIP on main: 9c1e2f4 メニューを足すしまったものの一覧を見ます。新しいものが stash@{0} です。
$ git stash pop
いちばん新しいものを作業ツリーに戻し、一覧から消します。
$ git stash apply stash@{2}3 番目に新しいものを戻します。一覧には残るので、要らなくなったら drop で消します。
よくある間違い・注意
- -u を付けないと、新しく作ったファイルはしまわれず、作業ツリーに残ります。
- pop で戻すときにコンフリクトすると、一覧から消えずに残ります。直してから git stash drop で消します。
実際に打って練習する
Git コースの Lv18「一時しまう git stash」で覚えます(第3章 時の書庫(書き換えと復旧))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
Lv1〜10 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。