5
3

More than 5 years have passed since last update.

作業用ブランチで作業していたつもりがmasterブランチで作業してしまった時の対処法

Posted at

対処法

1.Commitする前に変更内容を一旦退避

$ git stash (save)

stash(退避場所)へ移す。saveは省略可。
masterブランチは作業前の状態に戻り、git statusで確認すると修正内容は消えている。

2.本来作業予定だったブランチへの切り替え

$ git checkout <切り替えたいブランチ名>

ブランチの切り替え、新規作成の場合はcheckout -b ブランチ名

3.退避させていた変更内容を適用

$ git stash pop #stashを適用後、ファイルを削除
$ git stash apply #stashを適用後、ファイルを残す
$ git stash pop stash@{N} # N番目のスタッシュを適用後、ファイルを削除

Nはgit stash listで確認。

masterブランチでCommitまで済ませてしまった場合の対処法

1.Commit前の状態に戻してから、前述の「対処法」1〜3を実行

$ git reset --soft HEAD^

--soft:変更内容を残す
HEAD^:直前のコミット

その他stash関連コマンド

$ git stash show stash@{N} # N番目にスタッシュしたファイルの一覧表示
$ git stash show -p stash@{N} # N番目にスタッシュしたファイルの変更差分を表示
$ git stash drop # 最新のスタッシュを削除
$ git stash drop stash@{N} # N番目のスタッシュを削除
$ git stash -k # unstage ファイル全てスタッシュ
$ git stash -u # untrackファイルも含め全てスタッシュ
$ git stash clear # スタッシュを全削除
5
3
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
5
3