git diff --stat A...B のススメ
『 Looks Good To Me 』読書会を通じて知った「適切な PR サイズ」
ドクターメイト株式会社では読書会を実施しています。最近は『 Looks Good To Me 』を読みました。コードレビューについてのアレコレが書かれています。詳細はぜひ読んでみてほしいです。
個人的に『 Looks Good To Me 』で印象的だったもののひとつが「適切な Pull Request サイズ」です。
Pull Request が大きいと良くないというのは感覚的・経験的に知っています。ただ、具体的な値を意識したことはありませんでした。
『 Looks Good To Me 』では、これについて具体的な値として「変更ファイル数 20 未満」、「コードの変更は 500 行以下」が挙げられています。
この値が絶対ということはないと思うのですが、読書会を通じて、チームでひとつの目安であるという共通認識ができました。
適切な Pull Request サイズの確認方法
では、どのように Pull Request のサイズを確認すれば良いでしょうか。
GitHub の Pull Request の画面
例えば GitHub の Pull Request の画面で確認できます。
ただ Pull Request をつくってから「あ、大きすぎた」ではちょっと遅いので、もうすこし早い段階で確認したいです。
git diff --stat A...B のススメ
そこで今日の本題 git diff --stat A...B です。
Pull Request をつくる前に、作業中、コミットをつくる際に確認する想定です。
git diff --stat A...B だと↓のようになります。 A は main など分岐元ブランチ (やコミット) です。 B は省略すれば直近のコミットです。 ... なので共通の直近のコミットからの差分が表示されます。
$ git diff --stat master...
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--stat ではファイルごとのものが表示されます。
git diff --shortstat A...B という指定もあります。こちらはファイルごとのものは表示されません。最後の 1 行のみです。
$ git diff --shortstat master...
1 file changed, 1 insertion(+), 1 deletion(-)
ファイルが多いときはこちらが便利かもしれません。
おわりに
適切な Pull Request サイズを確認するのに便利な git diff --stat A...B というコマンドを紹介しました。
レビュアーに優しい Pull Request を心がけたいですね。
Discussion