📝

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 だと↓のようになります。 Amain など分岐元ブランチ (やコミット) です。 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 を心がけたいですね。

参考

GitHubで編集を提案
ドクターメイト

Discussion