eureka

ブランチを変更したいけど変更箇所は保存したい。それ、git stashで解決!

0
github

コミット前に別のブランチに変更したくなるときがあるんだよね

作業の状態はそのまま残したい、けどブランチを切り替えたい。 そんなときにstashを使用するのじゃ。 ただし、stashが使えるのはコミット前の変更だから注意するように。

stashとは

現在の作業ブランチ内のコミットしていない変更をある領域に退避させて保存しておくgitの機能です。
コミットしていない変更とは、addしたものもaddしていないものもどちらも含まれます。

使い方

今の変更点をそのまま退避

$ git stash save
// もしくは
$ git stash

ブランチは変更が取り消された綺麗な状態になります。

退避した作業一覧を見る

$ git stash list

退避した作業を戻す

$ git stash apply stash名

現在の作業ブランチに変更を戻します。

退避した作業を消す

$ git stash drop stash名

stashを戻しただけでは記録としてまだ残っているので、定期的にお掃除したほうが良さそうです。

退避した作業を戻して、stashのリストから削除する

$ git stash pop stash名

あまりに古い作業内容だとコンフリクトが起こるかもしれないのでそんなときは使わないほうが良さそうですが、直近の作業分なら良さそうです。

自分が使うとき

よく使う流れを覚書で。

現在の作業内容を退避する

$ git stash

現在の作業内容を戻す

$ git stash pop

あまり複雑なことはしないのでこれくらい覚えていればいいかな

参考

【git stash】コミットはせずに変更を退避したいとき

0