style: コードフォーマットの変更

フォーマットのみの変更にstyleコミットタイプを使うタイミングを学びます。空白、セミコロン、クォート、styleとrefactorの違いを解説します。

Type Examples

詳細な説明

style コミットタイプ

styleタイプは、コードの意味や動作に影響しない変更に使用します。フォーマット、空白、セミコロン、クォート、末尾のカンマ、その他の見た目の変更が含まれます。Semantic Versioningでは、styleコミットはバージョンバンプをトリガーしません。

メッセージの例

style: apply prettier formatting to all files
style(components): convert double quotes to single quotes
style: fix indentation in config files

styleを使うタイミング

以下の場合にstyleを使用します:

  • 自動フォーマット(Prettier、ESLint --fix、Black等)を適用する
  • インデントを変更する(タブからスペースまたはその逆)
  • クォートスタイルを変更する(シングルからダブルまたはその逆)
  • 末尾のカンマを追加・削除する
  • 空白の問題を修正する(末尾のスペース、空行)
  • 使用するインポートを変えずにインポートを並べ替える

styleを使わないケース

変更内容 代わりに使う
変数のリネーム refactor
ロジックを説明するコメントの追加 docs
未使用コードの削除 refactor
動作を変えるlintエラーの修正 fix

styleとrefactorの比較

重要な違い:

  • style:空白、フォーマット、見た目の変更のみ。diffツールは変更を表示するが、AST比較では同一のツリーを表示する。
  • refactor:コード構造が変わる(異なるAST)が、動作は同じ。

ベストプラクティス

  1. フォーマットコミットをロジック変更から分離する。コードレビューが容易になる。
  2. 自動フォーマッターを使用し、その出力を単一のstyleコミットとしてコミットする。
  3. 説明に使用したツールを記載する:
    style: apply prettier v3.2 formatting
    
  4. ファイルごとにフォーマットするのではなく、フォーマット変更をバッチ化して単一のコミットにする。

ユースケース

プロジェクトにPrettierを追加し、コードベース全体に適用しました。フォーマットの変更は純粋に見た目だけで、ロジックは変更されていません。レビュアーが詳細なコードレビューをスキップし、動作が変更されていないことの確認に集中できるよう、スタイルのみの変更であることを明確にするコミットメッセージが必要です。

試してみる — Git Commit Message Generator

フルツールを開く