前職まで、バージョン管理ツールはSubversion(SVN)を使っていたこともあり、恥ずかしながらGitHubを使ってRevertをするのは初めての経験でした。
コマンドラインでやる方法もあるのでしょうが、初めてのことはUIでやったほうが視覚的で分かりやすくミスがないかなと思ったので、MergeされたPull RequestをGitHubでRevertする方法を探して実施しました。
実際のGitHubの画面を見せながら、GitHubでRevertする方法を見ていきましょう。
こんな方にオススメ
- GitHubを使って特定のPull Request(プルリクエスト)のMergeを取り消したい
具体的なステップ
- closedのPull RequestからMergeを取り消したいPull Requestを選択
- 対象のPull Requestの詳細画面でRevertボタンをクリック
- Mergeを取り消すための戻しPull Requestを作成
- 作成された戻しPull RequestをMerge
closedのPull RequestからMergeを取り消したいPull Requestを選択
まず、GitHubのリポジトリにおいて「Pull requests」タブを開き、Mergeを取り消したいPull Requestを選択します。
今回は「masterプルリク_sample2」というPull Requestがそれに該当すると思ってください。
該当のPull Requestをクリックして、Pull Requestの詳細画面に遷移すればOKです。
対象のPull Requestの詳細画面でRevertボタンをクリック
下のほうに「Revert」ボタンがあるので、クリックします。
Mergeを取り消すための戻しPull Requestを作成
さきほどの「Revert」ボタンをクリックすると、Mergeを取り消すための戻しPull Requestを作成する画面に遷移します。
タイトルの変更や概要の追加をしたい場合は適宜行ったうえで、「Create Pull request」ボタンをクリックします。
戻しPull Requestが作成されましたね👍
作成された戻しPull RequestをMerge
最後のステップとして、先程作成した戻しPull RequestをもってMergeしていきます。
ここで「なんでまたMerge?」と思う人もいるかもしれませんが、戻しPull Requestには「特定のPull RequestでMergeしたファイルを元に戻してよ」という情報が詰まっているイメージで、それをMergeすることで初めて取り消しが完了するという感じです。
戻しPull Requestに対して、特にコメントがなければ、「Merge Pull request」ボタンをクリックします。
確認を促す画面になるので、問題なければ「Confirm merge」ボタンをクリックします。
少しすると、Mergeが完了し、「masterプルリク_sample2」でMergeした内容を取り消すことができました🙌
はい、以上になります。
この記事を見て、同じ悩みをもった方の解決の助力が出来たら嬉しいです!!