コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

GithubでRevertしたPullRequestをまた反映させたい場合はそのPullRequestをまたRevertさせる。

みんな書いてるけど簡潔な表現を表しているページがなかったので書いてみる系

やり方

PullRequestをRevertしたPullRequestをRevertしたPullRequest作ってマージする

修正をもとに戻す

以下の動作をしたとする

  1. branchAを作り、修正Aを行いコミット
  2. branchAをPushし、masterにマージするPullRequestAを作成
  3. PullRequestAをマージした

そのあと

修正Aが反映される前のmasterの状態に戻したい

となったとする。

その場合は PullRequestA をrevertした PullRequestBを作成して masterにマージする。そうするとmasterは修正Aが行われる前に戻る

修正を再度マージする

修正したPullResuestBをrevetすると、修正Aを行う内容が再現されたPullRequestCが出来上がるので、それを使って変更を反映する

できない方法

PullRequestAでマージしたブランチを復活させればいいじゃん!みたいに思うかもしれないが、PullRequestAの作業はすでにmasterにマージされているので反映はできない。

何故かと言うとrevertは対象の変更の打ち消し修正を行っているだけなので、その元となる修正が入っているブランチをマージしようとしても変化がない。

関連リンク