LoginSignup
11
10

More than 5 years have passed since last update.

覚えた使えるGitトリック _Stash

Last updated at Posted at 2016-03-30

2016年 初春。
アルコール漬けのチンピラからプログラマに転身した私が覚えたトリックを備忘録兼ねてまとめるTips_Git編


  • git stash

愛してるぜ、スタッシュ!!

心の底からそう思う、数多くあるgit呪文の中でも先週の俺ランキングNo1。

使うとき

  1. ボクはいまkellyブランチで作業をしています。あと二日はかかりそう。
  2. すると突然、急ぎの修正作業依頼が舞い込みました。
  3. 一旦、kellyブランチをコミットして、masterからbillyブランチを切り出して修正作業を行っていました。今までのアチキは。
  4. でも、まだコミットしたくない!全然区切り良くない!!って思ってた。本当は。
  5. そんな時にはgit stash
  6. 今やった変更を退避してくれる。git的には変更は無かったものになるけど実は裏できちんと覚えてる。君のこと。
  7. そうすれば、billyブランチに切り替えて修正をコミット&プッシュしても、またkellyブランチに戻ってあの日の修正から始められるのよ。

使い方

一旦、退避しておきたいブランチで、単純に

kelly_branch
git stash

すれば、いいだけ。

すると

kelly_branch
Saved working directory and index state WIP on kelly_branch: c4f1c56 
"さっきのコミット"
HEAD is now at c4f1c56 さっきのコミット

みたいな感じで退避されます。Saved working directoryって書いてますね。

git statusしても

kelly_branch
On branch kelly_branch
nothing to commit, working directory clean

こんな感じで、変更が無かったことになってるよね。

あの日に帰りたい
billyブランチの修正が終わって、kellyに戻ってきた場合、やった修正はstashによって隠れているので、戻しましょう。

kelly_branch
git stash list

とやると、stashした一覧が見れます。そうです。stashは何度もできるのです。

kelly_branch
stash@{0}: WIP kelly_branch: c4f1c56 "さっきのコミット"

今は1度しかstashしていないのでstash@{0}しかありませんが、複数ある場合は、stash@{1}とかstash@{2}とかが出来上がります。このstash@{x}はstash名です。

applyメソッドを使って、戻したいstash名を指定すると、あの日に帰れます。

kelly_branch
//戻します。
git stash apply stash@{0}

ちなみに、git stash apply popとやると、常に最新のstashに戻れます。

これで、ブランチを切り替えまくって、仕事してる感を味わいましょう。

参考

git stash した内容をさっくり確認したい
変更を一時的に退避!キメろgit stash

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10