はい、今回は作業途中で別のブランチに移動する動作をGitで行いたいと思います。
別ブランチに移動したいけど、今のブランチはコミットしたくない!
そんなときに使えるコマンドstashを紹介します。
qiitaを参考にしました。
Table of Contents
伝えたいこと: git stashの使い方
どんな状態でstashを使うと良いのか、どんな風に使うのかというのがわかるのがこの記事の目的となっています。
全ては触って覚えろなんで進めていきましょう~
課題: 現ブランチはコミットしたくないけど、緊急で別ブランチに用事がある
今回の課題は以下の通りになります。
- 現在作業中のブランチAがある。
- Aは途中なのでコミットをしたくない。
- Bブランチに用事があるので切り替えたい。
だけどどうしたらいいいの~~~~~~
ってなります。
そう。コミットしなくて良い方法があるんです!それを紹介していきます。
解決方法: git stash
使い方
git stashコマンドを使えばこの問題は解決できます。
どんなコマンドなのかというと、
コミットせんと一旦置いといて~
違うブランチいじってくるわー
というときに使えるコマンドなんです。
では使ってみましょう。
$ git stash
Saved working directory and index state WIP on {現ブランチ名}: xxxxxx Merge branch 'dev' into {現ブランチ名}
Code language: JavaScript (javascript)
できた!そしたらログを見てみよう。
$git stash list
stash@{退避リスト番号}: WIP on {stashしたブランチ名}: xxxxxx Merge branch 'dev' into {stashしたブランチ名}
Code language: PHP (php)
これで「ほい、いったん置いておいたから好きなとこ行っておいでー」っていう状態になっているようですね。
ではブランチを移動して作業しましょう。
…
…
…
そこから!
どうして戻すのかというと。
//退避リスト番号を確認
$ git stash list
//退避リスト番号を指定して戻す。
$ git stash apply 退避リスト番号
Code language: PHP (php)
これでOKです!
もし用事がもうなければstashも消しておきましょう。
//退避リストを全て削除
$ git stash clear
Code language: JavaScript (javascript)
注意点
stashコマンドだけだとuntracked fileは退避されないので、以下コマンドを使いましょう。
$ git stash -u
退避リストが増えてくるようならコメントも入れた方がわかりやすいので以下コマンドを使いましょう。
$ git stash save "メッセージ"
Code language: JavaScript (javascript)
こんな感じでOKだと思います!
まとめ
結局何事も使っていく、試していくうえで疑問が出てくるので調べていくのがよいな。
と思っています。