過去の記事でプルリク後に git reset
をしてしまった際、プルリクを作り直すという最善とは言えない作戦を書いていました。
-
[Git] git reset に気をつけろ!!
続きを見る
プルリクエストを出した後に、作業を取り消す場合、通常 git revert
を使用します。むやみに git reset
を利用してしまうと、リモートブランチとの整合性が取れなくなってしまい、ローカル作業後に git push
しようとしても、エラーが出てしまいます。※そこでforceオプションなど強制的にプッシュするとリモートも壊れる可能性が高いので気を付けた方がいいです。
そこで、うっかり git reset
をしてしまった。という場合の対処法をステップ形式で記します。
step
1masterにブランチに切り替える
command
git checkout master
step
2うっかりgit resetをしたローカルブランチを「えいやっ」と思い切って削除
command
git branch -D {当該ブランチ名}
step
3一応masterを最新状態に
command
git pull
step
4削除したローカルブランチ名を指定して切り替える
command
git checkout {当該ブランチ名}
とすることで、ローカルブランチが(削除したので)存在しない場合、よしなにリモートブランチを拾ってきてくれます。
なので、結果的にローカルブランチで、すでにプルリクしたコミットを削除してしまったとしても、リモートブランチには残っているので、それを復旧という形で持ってくれば、リセットする前の状態から作業を新たに開始することができます。
ともあれ、プルリクした(リモートへプッシュ済みの)コミット作業履歴は、うっかり git reset
しないようにしましょう。