「あ、間違えて違うブランチでファイル変更しちゃった」ときの対処法【git stash】

「あ、間違えて違うブランチでファイル変更しちゃった」ときの対処法【git stash】

投稿日: 2024年12月16日

Tips
要約
  • ブランチBで変更した差分をgit stashコマンドで一時退避させる。
  • 退避後、作業したいブランチAに移動し、git stash popコマンドで差分を復元する。
  • 複数の差分を登録でき、特定の履歴を復元するにはgit stash pop stash@{n}を使用する。

ブランチAで作業しなくてはいけないのに、
ブランチBで作業してしまった。。
しかも、結構たくさんのファイルを変更してしまった。。
差分がある状態でブランチAに移動しようとするとエラーが出るし、
ブランチBにコミットはしたくない。。

差分を加えたファイル全て手作業でコピーして、どこかに退避させる??
めっちゃだるいよ??

こんな時に使えるのが git stashコマンドです。

違うブランチで作業してしまった時のリカバリ手順

↓ 例として、feat/blogブランチで作業したかったのに、mainブランチで差分を加えてしまったとします。

「あ、間違えて違うブランチでファイル変更しちゃった」ときの対処法【git stash】|ShiftBブログ

git stashコマンドを打ちます。

「あ、間違えて違うブランチでファイル変更しちゃった」ときの対処法【git stash】|ShiftBブログ

↓差分が消えます。(一時退避された状態になります。)

「あ、間違えて違うブランチでファイル変更しちゃった」ときの対処法【git stash】|ShiftBブログ

↓元々作業したかったfeat/blogブランチに移動します。

「あ、間違えて違うブランチでファイル変更しちゃった」ときの対処法【git stash】|ShiftBブログ

git stash popコマンドを打ちます。

「あ、間違えて違うブランチでファイル変更しちゃった」ときの対処法【git stash】|ShiftBブログ

↓退避させていた差分が復元します!

「あ、間違えて違うブランチでファイル変更しちゃった」ときの対処法【git stash】|ShiftBブログ

これで、feat/blogブランチに差分を移動させることができました。

おまけ

git stashコマンドでは、複数の差分を登録することができます。

git stashコマンドを連続で行うと、古い方が消えるわけでなく、配列式で記録が増えていきます。

git stashした差分の一覧を見たい時は、git stash listコマンドで一覧表示できます。

git stash popコマンドは、最後にgit stashした履歴を復元するコマンドですが、

n番目の履歴を復元したい場合は、git stash pop stash@{n} と打つことで、n番目の退避データを復元することができます。

シェア!

Threads
icon
ぶべ
Webの修行中 / 個人開発奮闘中 / ベンチプレス110kg / Reactの先生
記事一覧に戻る
Threads
0