よくブランチを切り忘れてPRの際に困るのでリカバリー方法をメモっておく。
例えば、 develop ブランチで作業中
-
コードの修正がたくさん発生するも無事問題解決
-
hotfix ブランチ作成 (これを忘れる)
-
せっせと commit する
-
origin に push。と思ったら 2を忘れていた事に気がつく
リカバリー開始
-
git の log チェック。 どこに戻すか確認しておく
-
HEAD で hotfix の branch 作成 して local の develop の余計な Commit を削除する (リカバリー完了)
-
hotfix を origin に push
-
PR作成
-
Mergeされる
-
local の develop で pull
コマンドだと
$ git log --oneline develop
EEEEEEE hoge4 NG (HEAD -> develop)
DDDDDDD hoge3 NG
CCCCCCC hoge2 NG
BBBBBBB hoge1 (origin/develop)
$ git checkout -b hotfix-hoge234
$ git checkout develop
Your branch is ahead of 'origin/develop' by 3 commits.
$ git reset --hard HEAD~3
HEAD is now at BBBBBBB hoge1
$ git checkout hotfix-hoge
$ git push origin hotfix-hoge234
無事 GithubでPR作成。
参考
- [Git]誤ったブランチで実施した変更を正しいブランチに移動する