Git

【git stash】変更をコミットせずに退避する【まとめ】

コミットせずに変更を一旦退避したい場合などに便利なgit stashの利用方法まとめです。

変更の退避

$ git stash

ステージングされたもの(Changes to be committed)と変更のあるファイル(Changes not staged for commit)が退避されます。
Untracked files は退避されません。

$ git stash -u

Untracked files を含めた全てを退避します。

$ git stash -uk

ステージング(git add)したものだけ残り、stagingしていないファイルを全て退避します。

退避したあとは想定通りに退避できているか、git statusを確認することをオススメします。

stashの一覧を確認

$ git stash list

stashの一覧を表示します。
stashがなければ何も出ません。
後述のpopなどをした際に引数を省略すると一番上のstash@{0}が自動的に選ばれます。

stashした内容を戻す

※直前のstashをpopする場合以外は基本的に一度listを確認しましょう。

$ git stash pop
or
$ git stash pop stash@{0}

stashした内容を戻して一覧から消します。コンフリクトなどがあった場合は消えません。
引数を省略した場合は直近のstashの内容に対して実行されます。
引数はgit stash listで表示されたものなので、stashやpopをするたびに数字はズレていきます。

$ git stash apply
or
$ git stash apply stash@{0}

一覧から消さずにstashした内容を適用します。

stashした内容を消す

$ git stash drop
or
$ git stash drop stash@{0}

stashした内容を適用せずにそのまま削除します。

-Git

Copyright© F27P , 2022 All Rights Reserved Powered by AFFINGER5.