「作業中だけど、他の人の変更をpullした反映したい。でも、作業が中途半端だからコミットはしたくない。」というときがあります。
そんなときは stash
で、コミットしていない変更を退避することができます。
pullなどで変更を反映した後、退避させていた変更を戻して作業を再開することができます。
次のコマンドを実行すると、変更した部分が退避されます。
git stash -u
実行後、ワーキングディレクトリ上は差分がない状態になります。
-u
は --include-untracked
の略です。新規作成ファイルも退避することができます。
次のコマンドで、退避した作業の一覧を参照することができます。
git stash list
stash@{0}: WIP on ${BRANCH_NAME}: hogehogehoge
stash@{n}
1行が1回分のstashになります
hogehogehoge
は stash
をしたときのHEADのコミットハッシュとコミットメッセージになります
stash@{0}
の作業をもとに戻します。
git stash apply stash@{0}
stash
で退避した作業を元に戻しても、退避した情報はリストに残ったままなので削除します。
git stash drop stash@{0}
git stash pop
で実行すると、作業をもとに戻すと同時にリストから消すこともできます。
git stash pop stash@{0}