GitHubで、プルリクをrevertした後に修正した時の対応

Git

Github上でプルリクエストに対してマージをした後、リバート対応をしたのですが、
リバート後に修正したいことがあり「Git的にどう対応すれば良いんだっけ・・?」とtったことがありました。
その時に作業をした流れの手順を備忘録兼ねて残しておきます。

先にこの記事で使う用先に説明をしておきます。
また、Gitについてはプッシュなどの初歩的な操作の説明についてはこの記事では含めていません。

Git Revert・・・過去のコミットを戻す処理。打消しのコミットが作成されます。
統合ブランチ・・・開発において基点となるブランチ。プロジェクトによって違いますが、例えばmainやdevelop等になります。
作業ブランチ・・・本記事では統合ブランチからチェックアウトしたブランチのことを指します。

状況

  • 作業ブランチをプルリクした後、統合ブランチへ混ぜた後に不具合が含まれていることがわかった
  • バグが含まれてマージした分を取り消すため、GitHubの作業ブランチ→統合ブランチのプルリクのページからrevert対応を行った

やりたいこと

  • 作業ブランチに修正を加えて再度統合ブランチに混ぜたい
  • 同じ作業ブランチ名のままで修正分の作業を積み上げたい

やったこと

  • ローカルで作業ブランチに統合ブランチを混ぜて最新にし、直前のリバートコミットをrevertする(=revertをrevertしたことになる)
  • 作業ブランチをリモートへプッシュ
  • 作業ブランチから、更に「修正ブランチ」を切って修正分をコミット→プッシュ
  • 修正ブランチ→統合ブランチへPRを作る→マージ
  • 作業ブランチ→developブランチへのPRを作る→マージ

このようにすると、以前と同じ案件ブランチ名のまま、修正分を統合ブランチへマージすることができるようになります。

メモ

  • gitはコミットidの差分を見ているためrevertした後、作業ブランチで修正作業し、統合ブランチへマージしようとしても、修正作業をコミットした分しか差分が出なくなってしまう
  • そのため「revertをrevertした」というコミットを積み上げることで、ブランチ間の差分を出すことができる
  • 1回マージしてしまうとrevertに対してのrevertブランチをしないとfile changesの差分が出なくなる

いかがだったでしょうか?
もし同様の状況になって、対応方法が困っている方がいれば、ひとつの参考としてください!

コメント

タイトルとURLをコピーしました