t-jindai

連載記

git commit log を PRレビューを出す前に整える方法(soft版)

Posted at # git

PRのレビュー依頼を出す前に一手間かけるだけで、レビューしやすくなります。

変更箇所が多いとレビューがしずらい

機能開発あるあるですが、気がつくとPRの変更ファイル数が数十になっていることがあります。 こうなると、レビュワーは全体像を把握するだけで大変です。

レビュワーはあなたの書いたコードを初めて見るので、変更量が多いとそれだけで認知負荷があがります。

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 --soft origin/$BASE_BRANCH_NAME

# 3. すべての変更を unstaged 状態にする
$ git restore --staged .

これで、作業ブランチで行ったすべての変更が unstaged 状態になります。 あとは、 git addgit add -p意味のある単位 にわけてコミットし直し、

$ git push origin head --force-with-lease

でpushすれば完了です。

この方法の利点