Git サーバー

プルリク後の作業取り消しにgit resetをしてしまった場合の対処法

※本サイトはPR表記を含みます。

過去の記事でプルリク後に git reset をしてしまった際、プルリクを作り直すという最善とは言えない作戦を書いていました。

[Git] git reset に気をつけろ!!

続きを見る

プルリクエストを出した後に、作業を取り消す場合、通常 git revert を使用します。むやみに git reset を利用してしまうと、リモートブランチとの整合性が取れなくなってしまい、ローカル作業後に git push しようとしても、エラーが出てしまいます。そこでforceオプションなど強制的にプッシュするとリモートも壊れる可能性が高いので気を付けた方がいいです。

そこで、うっかり git reset をしてしまった。という場合の対処法をステップ形式で記します。

step
1
masterにブランチに切り替える

 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 しないようにしましょう。

-Git, サーバー
-,