🦁

【Git】ブランチ間違えた&切り替えたい時のtips

2024/12/03に公開

はじめに

自分の git を使って開発しているときのあるあるとして

  • ブランチ切るの忘れて作業してたー
  • まだ作業途中だけど、他のブランチのレビューとか急ぎの修正しなきゃいけない

っていうようなことがあります

そんな時に使える Git コマンドです

コミットせずに変更内容を一時退避させる

git stash -u

一時退避させる時はこれです
最新のコミットの状態に戻すという感じですね

-uをつけると、追跡対象外のファイル(新規作成したファイル)も含めることができます
なので自分は最初から全て-uをつけています

退避させた変更内容を復元する

git stash apply

先ほどstashして退避させた変更内容はこのコマンドで復元します

自分は一回stashしてそれを戻すという使い方を基本的にするのですが、そもそもstashは 1 つだけではなく複数できるので、この復元コマンドは最新を対象にしています

他のコマンド

先ほども言った通り、自分は今までの 2 つのコマンドしか使っていません
ただ調べてみると他にもあって便利そうだったので、メモがてら書いていきます

stash した一覧を見る

git stash list

stashはどんどん溜まっていくので、listで前のものも確認できます
実際に使ってみました

stash@{0}: WIP on main: コミットハッシュ コミットメッセージ
stash@{1}: WIP on main: コミットハッシュ コミットメッセージ

このような感じで番号とstashした時点での最新コミットの情報が表示されます

このstash@{n}という部分で順番に番号が振られているのでこれを使うと最新以外のstashも復元することができます

特定の stash を復元する

git stash apply stash@{0}

先ほど見た一覧から復元したい番号を指定すればいいだけですね

まとめ

今回はgit stashについてでした
チーム開発中にさっと使えると便利なコマンドなので基本的なのだけでも覚えておきたいですね

ちなみに、applyで復元しても退避した情報は残ったままらしいです
そのため、消すコマンドや復元と同時に消してくれるコマンドもあるようです

その他の操作コマンドは以下の記事などを参考にしてみてください

https://qiita.com/wamauuphhh/items/687530c5638605cd0779
https://zenn.dev/ganmo3/articles/5bf0b9d42894c4
https://qiita.com/chihiro/items/f373873d5c2dfbd03250
https://www.atlassian.com/ja/git/tutorials/saving-changes/git-stash

Discussion