はじめに
Gitでバージョン管理を行っているローカルリポジトリで
ワークツリー内の変更内容を一時的に保存(現在の作業を一時的に退避)する方法について
よく使用するコマンドの覚書を残します。
コマンド
# 追跡されていないファイルも含めて名前を付けて退避する
$ git stash push -u -m "sample_stash_name"
# 補足:push時にpオプションを指定することで部分的に(hunkという単位で)退避することもできる
# 例:git stash push -p -m "sample_stash_name"
# 退避した作業一覧を確認
$ git stash list
# 退避した作業の詳細を確認
$ git stash show stash@{number}
# 補足:show時にpオプションを指定することで差分(diff)を確認することができる
# 例:git stash show -p stash@{number}
# 退避した作業を指定して元に戻す(applyで戻した作業は退避一覧から削除されない/popコマンドだと削除される)
$ git stash apply stash@{number}
# 作業が戻っていることを確認してから削除
$ git stash drop stash@{number}
# apply と drop を同時に行う例
$ git stash pop stash@{number}
※「sample_stash_name」及び「number」は適宜読み替えること。