Help us understand the problem. What is going on with this article?

git stashの流れ【コミットせず変更を退避ってどうやんの】

最近だけど、あるブランチで作業をしていた時に
急遽他の作業依頼が来たんだよね。

あれ、今のブランチの作業履歴ってどうやって保存して
他のブランチを切ればいいん...?って困ったのがきっかけ。

stashを使うとコミットしていない変更履歴を退避させておくことが可能みたい。
まじでgitすごい。

実はstashのこと知る前は、ローカルに変更したファイル群をそのまま保存して
あとで1ファイルずつまた変更しなおしてたんだよね。
まじでなんでもっと早く教えてくれなかった??????ってブチギレそうになったことが以前ある。

まず変更を退避!

$git stash save "XXXXXX"

これでブランチ上の変更が退避される。
まあつまり、ブランチは変更が加えられていないクリーンな状態になる。
ちなみにXXXXXXのところはコメントだよ。後でこのstashってなんだっけ...?ってならないためのやつ。
俺はいつも"feature/XXXXXX_yyyymmdd"って感じでstash名に加えて年月日をアンダースコアの後に追記してるかな。

※commitしちゃってたらだめだよ。addされた変更もしくはaddされていない変更のみが対象だからね。
 やべえ、commitしちゃってたって人は戻す方法があるからそれはそれで調べてね。ごめん。

え、本当に退避できてんのかな?

$git stash list

// 出力はこんな感じ。もしかしたらちょっとちがうかも。まあいっか。うろ覚えなんでね。
stash@{0}: feature/XXXXXX_yyyymmdd

これでさっきのstashがしっかり保存されている(退避されている)ことが確認できたね。
ついにブランチがクリーンな状態に... めでたい。
もう思う存分新規ブランチを切りまくってください。バンバン移動してもらって構いません。

よし、退避した変更を元に戻しますか

// stash@{0}の作業を元に戻すよ

$git stash apply stash@{0}

これでなんと、退避した変更は元通り。
微妙にめんどくさいけど、何回かやれば大丈夫すぐなれる。
あ、一点だけ注意。元に戻すときは、ちゃんと変更を元に戻したいブランチへ再移動してからにしてね。
これが最初できてなくて、若干混乱したことが何回かあるんで~

退避履歴溜まってきたし、削除してえ

$git stash drop stash{0}

dropしちゃえば削除できるよ。
削除前と後にはlistでしっかり削除確認してね。
あと、間違えてstashを削除してしまっても元に戻す方法はあるらしい...
それについてはまたどこかのタイミングで!

最後に復習しよっか これで忘れない

  • saveして
  • list確認して、他ブランチで作業開始
  • 作業が終わったら、ブランチを移動してapplyしてOK
  • stashが溜まってきてうぜえってなったらdrop

おわり。
つかれた。

to07270727
エンジニアってつらいよね 他人と比較せず、自分のペースで ゆるーくがんばるのがいちばん。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした