件名行が長すぎる

Conventional Commitsで72文字の件名行制限が重要な理由。簡潔な件名行の書き方と詳細を本文に移動する方法を学びます。

Best Practices

詳細な説明

72文字の件名行制限

広く受け入れられている規約は、Gitコミットの件名行を72文字以内に保つことです。これはハードな技術的制限ではなく — Gitはもっと長い件名を許容します — コミットメッセージの表示方法に基づいた実践的なガイドラインです。

なぜ72文字か?

  • git log --oneline:ターミナル幅で切り捨てます。長い件名は途切れます。
  • GitHub/GitLab:コミットリストビューで通常72文字でコミットメッセージを切り捨てます。
  • メールパッチgit format-patchはメールを生成し、メールクライアントは72〜78文字で折り返します。
  • ターミナル幅:伝統的なターミナルは80列です;72文字ならGitのインデント用の余白が残ります。

例:長すぎる

feat(authentication): implement OAuth2 authorization code flow with PKCE for single-page applications and mobile clients

115文字で、この件名は長すぎます。git log --onelineでは以下のように表示されます:

a1b2c3d feat(authentication): implement OAuth2 authorization code flow with PKCE for single-...

修正版

feat(auth): add OAuth2 PKCE authorization flow

Implement the OAuth2 authorization code flow with PKCE for
single-page applications and mobile clients. This replaces
the implicit grant flow, which is no longer recommended.

短くするための戦略

  1. スコープを短縮authenticationauthに、notificationsnotifyに。
  2. 冗長な言葉を削除:「implement the new」を「add」に。
  3. 詳細を本文に移動:件名は何を述べ、本文はどのようにを述べます。
  4. 略語を適切に使用configurationの代わりにconfig
  5. 結果に焦点を当てる:ユーザーや開発者が何を得るか?どのように構築されたかではなく。

設定可能な制限

Conventional Commitsリンターはデフォルトで72文字ですが、Optionsパネルのスライダーで50〜120文字の範囲で制限を調整できます。一部のプロジェクトは50文字(非conventional commitsに対するGitの推奨)を使用し、他は最大100文字を許容します。

警告とエラー

リンターは制限を最大10文字超過する件名に警告を発し、10文字以上超過する件名にエラーを発します。

ユースケース

すべての一般的なGitツール(ターミナル出力、GitHub/GitLabのコミットリスト、メールパッチ、コードレビューインターフェース)でコミットメッセージが読みやすいことを保証するために件名行の長さ制限を適用します。これは、コントリビューターが多様なツールを使用するオープンソースプロジェクトでは特に重要です。

試してみる — Conventional Commits Linter

フルツールを開く