みんな書いてるけど簡潔な表現を表しているページがなかったので書いてみる系
やり方
PullRequestをRevertしたPullRequestをRevertしたPullRequest作ってマージする
例
修正をもとに戻す
以下の動作をしたとする
- branchAを作り、修正Aを行いコミット
- branchAをPushし、masterにマージするPullRequestAを作成
- PullRequestAをマージした
そのあと
修正Aが反映される前のmasterの状態に戻したい
となったとする。
その場合は PullRequestA をrevertした PullRequestBを作成して masterにマージする。そうするとmasterは修正Aが行われる前に戻る
修正を再度マージする
修正したPullResuestBをrevetすると、修正Aを行う内容が再現されたPullRequestCが出来上がるので、それを使って変更を反映する
できない方法
PullRequestAでマージしたブランチを復活させればいいじゃん!みたいに思うかもしれないが、PullRequestAの作業はすでにmasterにマージされているので反映はできない。
何故かと言うとrevertは対象の変更の打ち消し修正を行っているだけなので、その元となる修正が入っているブランチをマージしようとしても変化がない。