checkoutをし忘れて変更を行ってしまったときに
自分がよくやらかすので、備忘録として。。。
以下のようなときに使いこなせると便利
- 実装した内容をまだ作成していないブランチに移動させたい
- 作業途中だけど少しだけ別のブランチに移動したい
実装した内容をまだ作成していないブランチに移動させたいとき
-
git stash
で変更を退避 - ブランチを作成しcheckout
-
git stash list
で復元したい退避内容を探す -
git stash apply stash@{0}
で退避内容の復元を行う(stash@{0}は手順3で探した復元したい退避) - 最後に退避情報が不要となった場合は
git stash drop stash@{0}
で削除する
$ git stash
$ git checkout {移動先のブランチ}
$ git stash list
stash@{0}: WIP on hogehoge: 1234567 fugafuga
$ git stash apply stash@{0}
$ git stash drop stash@{0}
stashまとめ(よく使うコマンド)
① git stash
追跡中の変更を退避する
以下のようにsaveを付けるとメッセージ付きにできるのでわかりやすくなる
git stash save "stashメッセージ"
② git stash -u
untrackedファイルも含めて退避する
→新しいファイルなどを作成した時はこっち
③ git stash list
退避の一覧を確認する
→退避内容を探す場合に使う
④ git stash pop
最新の退避を復元し退避情報を削除する
→退避情報が削除されるので注意
⑤ git stash apply
最新の退避を復元し退避情報も残す
→いきなり削除されるのは怖いので個人的にはこっちが好み
⑥ git stash apply '退避番号(stash@{3})'
指定した退避番号の内容を復元し退避情報も残す
→連続で退避を行ってブランチを移動しまくっているときとかに使える?
⑦ git stash drop
最新の退避情報を削除する
⑧ git stash drop '退避番号(stash@{3})'
指定した退避番号の退避情報を削除する
⑨ git stash clear
全ての退避情報を削除する
⑩ git stash show
最新の退避との差分を確認する
⑪ git stash show -p
最新の退避との差分を確認する(詳細バージョン)
⑫ git stash show '退避番号(stash@{3})'
指定した退避番号との差分を確認する