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 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

Git コマンド一覧(使い方と例)へ戻る