コミットの粒度はどのくらいが適切か? 新人エンジニア向けに解説

こんにちは。ゆうせいです。

Git を使って開発していると、「コミットの粒度はどのくらいが適切か?」という疑問にぶつかることがあるよね。特に新人エンジニアにとっては、「細かすぎると管理が大変そうだし、大きすぎると意味が分からなくなりそう…」と悩むポイントかもしれない。

今回は 「適切なコミットの粒度」 について、分かりやすく解説するよ!


そもそも「コミットの粒度」とは?

コミットの粒度とは、1回のコミットでどれくらいの変更を含めるか ということ。たとえば、次のような2つのコミットのやり方を比べてみよう。

例1:コミットが細かすぎる場合

git commit -m "変数 x を修正"
git commit -m "関数 foo() をリファクタリング"
git commit -m "スペルミス修正"

この場合、変更が細かすぎて履歴が散らばり、後でコードの変更点を追うのが大変になる。

例2:コミットが大きすぎる場合

git commit -m "ログイン機能を実装しました"

このコミットに、新規ファイル追加、バグ修正、リファクタリング、設定変更などが全て含まれていると、後で問題が発生したときにどこを修正すればいいのか分かりにくい。

では、どうすればよいのか?


適切なコミットの粒度とは?

1. 「1つの論理的な変更」ごとにコミットする

コミットは 「意味のある単位」 でまとめるのがベスト!
「意味のある単位」とは、「この変更だけを取り出して適用しても動作が成り立つか?」 という観点で考えるとよい。

良い例:

「ボタンのデザインを変更」
「パスワードのバリデーションを追加」
「不要なログを削除」

悪い例:

「いろいろ修正」(何を直したのかわからない)
「全体的に調整」(全体ってどこ?)
「バグ修正 & 機能追加 & デザイン変更」(一度に色々やりすぎ)


2. 1つのコミットが小さすぎず、大きすぎないこと

適度な粒度を意識すると、「1つの変更が1つのコミット」 という良い状態になる。

適切な例

  • 「フォームのバリデーションを追加」
  • 「エラーメッセージの文言修正」
  • 「ボタンのクリック時の動作を修正」

小さすぎる例

  • 「フォームのエラーメッセージの一部修正」
  • 「ボタンの背景色を青から緑に変更」
  • 「変数名を 'a' から 'b' に変更」

大きすぎる例

  • 「ログイン画面の全面改修」
  • 「新機能追加 & 不具合修正 & デザイン変更」
  • 「プロジェクト全体のリファクタリング」

3. コミットメッセージは「何をしたのか」がわかるように

適切な粒度のコミットには、適切なコミットメッセージ も重要!

良いコミットメッセージの例

  • Add validation for password field(パスワードフィールドのバリデーションを追加)
  • Fix bug where login button was unresponsive(ログインボタンが反応しないバグを修正)
  • Refactor user authentication logic(ユーザー認証のロジックをリファクタリング)

ポイントは 「何をしたのか」 が具体的に分かること。
「修正」「変更」などのあいまいな言葉は避けると良い。


4. 大きな変更は「ステップ」に分ける

もし大きな変更をする場合は、いくつかのステップに分けてコミットしよう。

たとえば「ログイン画面のリニューアル」をする場合、次のように段階的に分けると分かりやすい。

  1. 「UIを新デザインに変更」
  2. 「ログインバリデーションの追加」
  3. 「ログインエラーメッセージを修正」
  4. 「古いログインコードを削除」

こうすると、後で「バリデーションの部分だけ元に戻したい」となったときも、簡単に履歴をたどれる。


まとめ:コミットの粒度のベストプラクティス

  • 1つの論理的な変更ごとにコミットする
  • 小さすぎず、大きすぎない適切な粒度にする
  • コミットメッセージは明確に
  • 大きな変更はステップに分ける

「この変更だけを取り出して適用しても動作するか?」を意識しながらコミットすると、後で履歴を見たときにとても分かりやすくなるよ!


次のステップ

もし「実際にどうやって適切なコミットを作るのか?」が気になったら、Git のインタラクティブステージング(git add -p について学ぶのもおすすめ!
部分的に変更を追加できるので、粒度を調整しながらコミットできるようになるよ。

ぜひ実際に試してみて、より良いコミットを作ってみよう!💡

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。