LoginSignup
1
1

More than 3 years have passed since last update.

作業中コミットせずにブランチを変更したい時の【git stash】のよくある使い方

Last updated at Posted at 2021-03-03

【準備】前回のgit stashが残っていないかを確認する

git stash list

一時的な退避が残っていた場合

git stash clear

このコマンドですべて削除できます。
あくまで一時退避なので、長期間stashを残すのはオススメしません。
必要なものは残しておきます。

一部を削除したい時

git stash drop stash@{n}

ここがポイントなのですが一番最新の「git stash」したものが{0}になります。
古い退避は0,1,2,3,4,,,nと数字が大きくなっていきます。

【本編】stage前の変更を一時保存する

git stash
git stash save

コマンドはどちらでも構いません。上は単なる省略形です。
ちなみに、私は省略しないで下のコマンドを使います。
自分が何をしているのか忘れないために、極力省略形は使わない癖を付けています。

ブランチの移動

git branch
* develop
  master
git checkout master
git branch
  develop
* master

「git stash」をしたことでワーキングツリーがクリーンになりブランチの移動ができるようになります。
今回は、「develop」から「master」へ移動しています。多くの場合は、トピックブランチ(作業ブランチ)からバグフィックス(修正ブランチ)への移動が多いと思います。その後、トピックブランチへ戻ります。

修正作業が終わったら一時退避を元に戻します

git stash apply stash@{0}

ここで最新の「git stash」の番号は「0」になります。
「git stash」が溜まっていると、applyする番号を間違えやすいです。

「git stash apply」の番号を間違えた場合

git checkout .

上記のコマンドでワーキングツリーをクリアにして、前回のコミットまで戻します。
その後、再度正しい番号の「git stash apply stash@{n}」を行ってください。

さいごに

git stash list
git stash clear

最後に一時退避リストを確認してから、すべて削除しましょう。
一時退避を長期間残しておく、必要性はないです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1