はじめに
チーム開発などをしていると、他メンバーの進捗によってコンフリクトなどを恐れて先に進めないなんてことがあるとのこと。
そんなときに役立つのがgitのstash
。
そんなstashを使いこなせるようになりたい。少しずつ慣れていけるようにしていく。
shashとは
stash は退避するという意味を持つそう。
今とあるブランチで作業してるけど、急にやりたいことができた。でもコミットしたくない。→ そんなときに使えるのがStashとのこと。
stashを使用すると、コミットしていない変更を退避することができる。
stashで現在の変更を退避して、今すぐやりたい作業をして、退避させていた変更を戻して作業を再開することができる。
実際の使い方
現在の作業を一時的に退避したい
$ git stash save
- save は省略できる。 また、 save の後に内容を表すメッセージを指定することができる。
- 下記のようにメッセージ指定して書くことができる。
$ git stash save "◯◯を修正中"
退避した作業の一覧を表示
$ git stash list
- 退避した作業の一覧を見ることができる
- 下記のような感じでStashしたリストを確認できる
stash@{0}: On be-webtest: ◯◯を修正中
複数Stashした場合は下記の様な感じで出る
stash@{0}: On be-webtest: ◯◯を修正中
stash@{1}: On be-webtest: Admin/UserControllerTest作成途中
退避した作業を戻す
$ git stash apply stash@{0}
- stashを
stash@{0}
で指定してあげてapply
を使って戻す
退避した作業を消す
$ git stash drop stash@{0}
-
stash@{0}
をstashのリストから削除することができる
退避した作業を元に戻すと同時に、stashのリストから消す
$ git stash pop stash@{0}
-
stash@{0}
の作業をもとに戻すと同時に、退避作業の中から削除する -
apply
とは違い退避リストからも消してしまうため、間違えて操作してしまうと戻れなくなるため、不安な人はapply
で操作したほうが良いかも
まとめ
慣れるまで時間がかかりそうだが、慣れたらすごく便利そうなStash
待機時間を作らないためにも覚えていきたいですね。以上