変更点を一時退避する

ワーキングディレクトリとステージングエリアの変更点を一時退避する時はstashコマンドを使用します。緊急対応で他の作業をする必要がある場合に、今の作業の進捗はcommitする程でもないときなどにstashを使います。

ワーキングディレクトリとステージングエリアを一時退避する

git stash

# untracked fileもstashする
git stash -u

# untracked fileとgitignoreしているファイルもstashする
git stash -a

# メッセージをつけてstashする
git stash save "メッセージ"

stashを確認する

# stashの一覧を表示する
git stash list

# stashの中身を確認する
git stash show stash@{n}

一時退避した変更点をワーキングディレクトリに戻す

# 全stashを戻す
git stash apply

# 特定のstashだけ戻す
git stash apply stash@{n}

# 一律ワーキングディレクトリに戻すのではなく、ステージングエリアにあったものをステージングエリアに戻す場合
git stash apply --index

※ワーキングディレクトリで同じファイルを変更している場合はエラーになってstash applyできない場合があるので、一度ステージングエリアにaddしてからstash applyし、発生するコンフリクトをmergetoolで解決する。

stashを削除する

# 全stashを削除する
git stash drop

# 特定のstashのみ削除する

git stash drop stash@{n}

# 一番最新のstashのapplyとdropを同時にする
git stash pop
タグ: