LoginSignup
0
0

More than 1 year has passed since last update.

gitでブランチを間違えたまま作業を進めてしまった時の対処方

Last updated at Posted at 2021-07-12

意気揚々と作業を進め、いざコミットしよう!という段で「ブランチ間違えてた!」ということはよくあると思います。
そんな時の簡単な対処法を紹介します。

前提

  • 開発用ブランチは develop
  • develop にコミットしようとした内容を master ブランチで作業してしまった
  • master に影響がないように差分を develop だけにコミットしたい

1.png
※こんなに作業したのにブランチを間違えて台無しだよ..の図

対処法

行った作業を一旦退避させる

行った作業を一旦退避させるには下記コマンドを利用します。

git stash -u

※-u は Untracked(新規ファイルやリネームしたディレクトリ等)を含める場合に付与します)
2.png
コマンド実行後、作業途中の差分が保存された旨とその時点での最新のコミットが表示されます。

退避させた作業を一覧表示する

git stash で退避させた作業を一覧で見るには下記コマンドを利用します。

git stash list

先程退避した内容が出てきます。
3.png
「WIP」とは Work in Progress(作業中)の略で、上記のメッセージを簡単に訳すと「masterブランチのコミットハッシュa978947のコミット上で作業中」と記載されているのがわかります。
git stash コマンドを使用する度にこのリストに作業が追加されていきます。

退避させた作業を別のブランチに適用する

退避させた作業を適用させたいブランチに移動します。

git checkout develop

ここでは develop へ適用させたいので develop へ移動し、下記コマンドを実行します。

git stash apply

apply は「適用」という意味を持つのでそのままですね。

このコマンドを実行した結果、develop ブランチに、最初に master ブランチで行った作業と同じ差分が適用されました。
4.png
忘れずにコミットしておきます。

退避した作業を削除する

git stash で作業を退避させる度に退避領域に作業がどんどん溜まっていくため、apply コマンドで適用する際に誤った作業を適用してしまうことを避けるために、余程の複雑な作業を行っていない限り退避領域はきれいにしておきたいです。

退避領域に保存されている作業を一括で削除するには下記コマンドを利用します。

git stash clear

下記を見ると、1回目のリスト表示で表示されていた作業が、clear 後に削除されていることがわかります。
5.png

これで何事もなかったように develop で作業出来ます!gitありがとう!

0
0
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
0
0