git commit log を PRレビューを出す前に整える方法
Posted at # git
PRのレビュー依頼を出す前に一手間かけるだけで、レビューしやすくなります。
変更箇所が多いとレビューがしずらい
機能開発あるあるですが、気がつくとPRの変更ファイル数が数十になっていることがあります。 こうなると、レビュワーは全体像を把握するだけで大変です。
レビュワーはあなたの書いたコードを初めて見るので、変更量が多いとそれだけで認知負荷があがります。
PRを分けるか、commit logを意味のある単位にまとめる
対応としては、
- PRを分ける
- commit logを意味のある単位にまとめる
のどちらかが良いです。 今回は、commit logを意味のある単位にまとめる方法を紹介します。
commit logを意味のある単位にまとめる
作業中は fix wip など適当なコミットログで作業を進めることがあると思います。
そのままでもPRは出せますが、レビュワーがどんな作業をしたのか一目でわかるようにコミットログを整理します。
コミットをリセットする
# 1. ghコマンドでPRのベースブランチ名を取得
# (例: 'main' や 'develop' の文字列が取得されます)
$ BASE_BRANCH_NAME=$(gh pr view --json baseRefName -q '.baseRefName')
# 2. リモートのベースブランチを指定してコミット数を計算し、リセットを実行
$ git reset HEAD~$(git rev-list --count HEAD ^origin/$BASE_BRANCH_NAME)
これで、作業ブランチで行ったすべてのコミットが unstaged 状態になります。
あとは、 git add や git add -p で 意味のある単位 にわけてコミットし直し、
$ git push origin head --force-with-lease
でpushすれば完了です。