はじめに
この記事はGitHub Actions Advent Calendar 2019の8日目の記事です。
5日目にも書いたんだけど、枠が余ってたので書いておこうかなって。
本当はリリースノートの準備をするActionについて書こうかと思ったんだけど、明日の人が書くっぽいので今日はお手軽なネタで、Git のログを綺麗にする rebase について書こうと思います。
rebase
今更機能的な説明は必要ないですよね?
チームで開発してたり、複数機能を並行して開発してたりして、ブランチが入り乱れることってよくありますよね。
気にせずにPRをマージすると、ログが汚くなったり、コミットグラフが入り組んでしまって、割れ窓理論よろしく開発意欲が失われる気分になる諸兄も多いのではないかと。
個人的には交差したグラフを見るとあーぁって気になります。私、気になります。
交差ってほどじゃなくてもこのレベルで、もうちょっとなぁってなる派。
スカッシュマージやリベースマージにする手もありますが、元コミットを残しておきたいとか、リバートするのにマージコミットは必要とかいろいろあるので、できればリベースしてからマージしたいかなと。
するとこうなるわけで。
cirrus-actions/rebase
そこで GitHub Actions でリベースできるようにすれば、ローカルでどうこうしなくても(PRの段階でコミットを整理してあれば)マージボタンを押す前に /rebase
とコメントするだけでリベースしてくれる素敵 Action があります。
GitHub action to automatically rebase PRs
何も考えずに、.github/workflows/rebase.yml
として、README に書かれているフローを保存しましょう。
後は PR をレビューしてもらって、マージしてもいいことになったら、 /rebase
とコメントを打って、少し待ちましょう。
自動的にそのブランチが master から生えたようにリベースされます。
その後普通にマージボタンを押すだけで見やすいグラフの出来上がりです。簡単。
コミットについては言及していません。
typo とか test とかちょっと修正、みたいなコミットメッセージを乱発してれば、それはそのまま残ります。
このコミットを掃除するのはPRを投げた人の責任範囲だと思います。その範囲内でリベースもしてくれれば必要ないのですが、必ずしもみんなが対応できるとは限らないので、こういった簡単な Actions があると便利ですね。
最後に
GitHub Actions 便利ですよね。こういう小さい便利を積み上げていけるといいなと思います。