【Git】プルリクエストをマージ済みを取り消したい【PRのリバート方法】
今回はプルリクエストをマージ済みを取り消したい【PRのリバート方法】の紹介です。
目次
git revertとは?
git revertは、指定したコミットを打ち消す新しいコミットを作成するコマンド方法になります。
リバートすることで、「過去の変更を取り消しますが、その取り消しを行ったことを履歴に残す」ことになります。
リバートは初学者には分かりにくいので、補足します。
一度変更した内容を元に戻すように修正を加えるのではなく、取り消すと言う形です。
リバートではない例
以下の例では、ただの相殺になります。
バージョン管理されているので、結果的には+-0で追加されてない結果になります。
- コミットで、「Aを追加」を行います。
- コミットで「Aを取り消し」を行います
リバートの例
以下の例では、リバートになります。
相殺ではなく、リバートとして取り消すことで、+-0で追加されてない結果になります。
- コミットで、「Aを追加」を行います。
- リバートで、「Aを追加」の取り消しを行います。
こちらもバージョン管理されているので、履歴には残ります。
コミットした履歴の確認
ログの確認はさまざまですがref logで確認します。
git reflog
スポンサードサーチ
対処のコミットSHAを確認
リバートしたい内容を確認して、コミットSHAを確認します。
xxxxxxx (origin/master, master) HEAD@{5}: checkout: リバートしたいコミットSHA
対処のコミットSHAはリバート後は含まれないです
revertを行う
先ほども言いましたが、対処のコミットSHAはリバート後は含まれません。
git revert リバートしたいコミットSHA
スポンサードサーチ
Github側でリバート
コミットした内容の画面でRevertボタンが表示されているので、Revertボタンを押下してください。
注意点としては、ボタン押下するとPRが作られてしまうので、間違えて押さないようにしてください。
Github側でリバートをマージ
PR作れたら、マージしてください。
マージで変更の取り消しが取り込まれます。
間違えてリバートをPRした場合
リバートボタンで生成されたブランチを削除して、pushしてください。
git branch -d revert-brunch
ブランチ削除したらpushします。
git push origin -d revert-brunch
以上です。