Git

[Git] 間違ったブランチで作業してしまった場合の対処

何度も忘れるのでメモ用に。

Commitしてしまったら

まず取り消す。

$ git commit -m "うわやっちゃったよこれもうどうすんだよ"
$ git reset HEAD~  

git reset HEAD~によってディスク上のファイルはすべてunstageされる(変更は残ったまま)
stageされたままでいいのなら、git reset --soft HEAD~を使う。

Pushまで行ってしまっていたら

強引なやり方として、一つ前のcommitをforce pushする方法がある。
(もし、これよりも良い対処があったら教えてください)

$ git push -f [一つ前のcommitID]:[現在のブランチ名]

git stashを用いて別ブランチに変更を反映させる

commit前に行う。git stashで一度変更を対比させ、ブランチ移動後にgit stash popで展開する。

$ git stash
$ git checkout [正しいブランチ]
$ git stash pop

Sources

https://stackoverflow.com/questions/1270514/undoing-a-git-push
https://stackoverflow.com/questions/927358/how-to-undo-the-most-recent-commits-in-git
https://stackoverflow.com/questions/7217894/moving-changed-files-to-another-branch-for-check-in/7218106