【Git】stashって意外と便利よね
どうも、おはこんばんにちは、ひろろです。
今回は、Gitのstash
について書いておこうと思います。
自分自身stash
はちょいちょい使うけど、たまにあるのが「これ何のやつだっけ?」です。
変更分を退避しといたり、戻したり、削除したり・・。
stash
に限らずローカルのGit環境も基本的にはスッキリさせておきたいなって思ってます。
概要
- stashとは
- 変更を退避
- 退避した作業一覧
- 退避した分を元に戻す
- stashの削除
stashとは
変更を退避すること。
例えば、あるブランチで作業中に他にやるべきことができてしまった場合に、「コミットはしたくないけど、この変更分は残しておきたい!」とかいう場合に使えます。
あとでまた作業を再開したい場合もすぐに戻すことが可能です。
変更を退避
$ git stash
まだコミットしていない状態の変更ファイルを一時的に退避することができます。
ちなみに、
$ git stash save "これはあの時のスタッシュ"
save
オプションは省略可能ですが、指定することでstash
にコメントを付与することができます。
退避した作業一覧
stash
で退避した作業の一覧を見ることができます。
$ git stash list stash@{0}: On develop: これはあの時のスタッシュ stash@{1}: WIP on develop: 12345a67 fix: xxx
こんな感じでstash@{n}
がstash
の名前でそれ以降はブランチ名やスタッシュメッセージです。
上のstash@{0}
で言うと、
- ブランチ:
develop
- メッセージ:
これはあの時のスタッシュ
となります。
ちなみに、退避はスタック方式と言うか積み上げなので、下にいくほど古いstash
となります。
リストから退避した作業ファイルを確認
$ git stash show stash@{n}
元に戻す前にファイルを確認する場合は上記で確認できます。
上のstash@{0}
で言うと、
$ git stash show stash@{0} html/test.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
こんな感じです。
退避した分を元に戻す
$ git stash apply stash@{n}
退避した分を元に戻す場合は、apply
を使用します。
この時、現在のブランチに退避した変更が適応されるので、元々作業していたブランチ以外にも戻すことができます。
stashの削除
$ git stash drop stash@{n}
退避した変更分を削除することができます。
apply
で元に戻してもリストはそのまま残ります。
退避した変更分を元に戻すと同時にリストも削除する
$ git stash prop stash@{n}
退避した分も元に戻して、そのstash
はもういらないなって場合はprop
を使用して同時に行うことができます。
個人的にはprop
はほぼ使うことはなく、完璧に「必要ないな」となった時点でdrop
で削除してます。
終わりに
とまあ、こんな感じで自分の備忘録的な感じで書いておきます。
これ書いてる時点でも「あぁ、こんなんあったな」だったし
忘れるな、俺!