10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Git】間違えてmasterブランチで作業してしまったときの対処法

Last updated at Posted at 2020-04-19

本記事の対象者

「作業用ブランチではなく、masterブランチで作業してしまっていた!」
「masterブランチでの作業内容を他のブランチに移行したい!」
そんな方に向けてこの記事を書いています。

※本記事の内容は、コミットしていない作業内容を他のブランチに移行するものなので、コミットした後にmasterブランチで作業してしまったことに気が付いた場合は、以下の記事を参考にgit reset --soft HEAD^を実行し、適宜対応してください。
https://qiita.com/S42100254h/items/db435c98c2fc9d4a68c2

Step1.修正内容を確認する

masterブランチで修正した内容を以下のコマンドで確認します。

$ git status

Step2.修正内容を別の場所で一時保管する

masterブランチで作業した内容を、別の場所に一旦保管する必要があるので、以下のコマンドを実行します。

$ git stash

再度git statusを実行すると、Step1で確認した内容がなくなっていることを確認できます。

まめ知識①

git stashした内容は以下のコマンドを実行することで確認ができます。

$ git stash list

まめ知識②

git stashした作業内容は複数個保存しておくことができます。(下記は複数回git stashを行った後にgit stash listを実行した結果)

stash@{0}: WIP on master: 5668f19 Add DetailArticle page
stash@{1}: WIP on master: 8597bb6 Add ariticles show api
stash@{2}: WIP on master: 149c26f fix article detail design

Step3.新しいブランチに移行

以下のコマンドにより新しいブランチを作成し、

$ git checkout -b <ブランチ名>

Step2で保管した作業内容を移行するため、以下のコマンドを実行します。

$ git stash apply

これで保存していた作業内容を新しいブランチへの移行することができました。

まめ知識③

git stash applyを実行すると、最後にgit stashした作業内容が移行されます。複数個の作業内容を保管している場合は、移行したい内容を以下のように指定する必要があります。

$ git stash apply stash@{2}

まめ知識④

一時保管していた作業内容をstash listから全て削除したい場合は、以下のコマンドを実行します。

$ git stash clear

git stash listを実行しても何も表示されないことが確認できます。

まとめ

以上の3ステップでmasterブランチでの作業内容を新しいブランチに移行することができました!
git stashは、本記事の利用方法以外にも、「急な仕事で他のことをしなければならないが、中途半端なのでコミットしたくない」といった場合に、一時保管しておくといった使い方もできます。
また、git stashに関連するコマンドは他にもたくさんあるので、気になる方は調べてみてください。

参考

10
9
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
10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?