Go Wiki: コミットメッセージ
コミットメッセージ(CL(変更リスト)の説明とも呼ばれる)は、https://go.dokyumento.jp/doc/contribute#commit_messages に従ってフォーマットする必要があります。例えば、
net/http: handle foo when bar
[longer description here in the body]
Fixes #12345
特に、件名(説明の最初の行)については、
- 変更の影響を受けるパッケージの名前はコロンの前に置きます
- コロンの後の部分は、「この変更は Go を ___________ する」という空白を埋める動詞の時制 + 句を使用します
- コロンの後の動詞は小文字です
- 末尾にピリオドはありません
- できるだけ短くする必要があります(多くの git 表示ツールは〜76文字未満を推奨しますが、Go はこれについてそれほど厳格ではありません)。
本文(説明の残りの部分)については、
- テキストは、本当に長い行が必要な場合(例:ASCII アート、テーブル、長いリンク)を除き、〜76文字に折り返す必要があります(主に git 表示ツールに対応するため)。
- Fixes 行は本文の後に行き、2つの間に空の改行を挟みます。(末尾にピリオドを使用することは許容されますが、必須ではありません。例:
Fixes #12345.
)。 - コミットメッセージにはMarkdownは**使用しません**。
Signed-off-by
行は**使用しません**。追加しないでください。GerritサーバーとGitHubボットが代わりにCLAコンプライアンスを強制します。- CL を参照する場合は、Gerrit の URL や git ハッシュよりも「CL nnn」と言うか、go.dev/cl/nnn ショートリンクを使用することをお勧めします。これは将来性が高いためです。
- リポジトリ間でコードを移動する場合は、履歴/責任を追跡しやすくするために、CL、リポジトリ名、および移動元/移動先の git ハッシュを含めます。
Fixes
の代わりに、GitHub でサポートされている代替エイリアス(Close
や Resolves
など)を**使用しないでください**。
コミットを修正済みとしてマークせずに issue にリンクするには(たとえば、コミットが修正に向けて作業中であるが、まだ完全な修正ではない場合)、GitHub では、コミットメッセージに issue 番号が記載されているだけで済みます。慣例により、Go のコミットは、コミットメッセージの本文に番号が記載されている場合でも、Fixes
が想定されるメッセージの最後に For
を使用してこれを示します。
例えば
Refactor func Foo.
This will make the handling of <corner case>
shorter and easier to test.
For #12345
他の Git プロジェクトでは、For
の代わりに Updates
を使用するのが一般的であり、これも許容されます(コミットは issue を更新しないため、あまり意味がありません)。より正確な表現も問題ありません。コードレビューで pedantic にならないでください。Updates
やその他の表現から For
に変更するように依頼したり、その逆を依頼したりする価値はありません。
復帰
Gerrit の Revert
ボタンを使用して変更をロールバックできます。Gerrit が説明を生成します。説明を編集して、ロールバックされる Gerrit CL 番号を Git リビジョン番号の隣に追加するか、Git リビジョン番号の代わりに追加します。
復帰の復帰を作成するために Gerrit UI を使用しないでください。すぐに人に通知されるためです。代わりに、新しい変更としてメールで送信し、説明に、CL NNNNNN によってロールバックされた CL NNNNNN のロールフォワードであることを説明します。
その他のリポジトリ
「go」以外のリポジトリ(「crypto」、「tools」、「net」など)の場合、件名は依然としてパッケージの名前ですが、GitHub org/repo 構文で issue 番号を完全修飾する必要があります
cipher/rot13: add new super secure cipher
Fixes golang/go#1234
特に、最初の行の件名には x/crypto/
プレフィックスを**含めないでください**。これは issue トラッカーの場合のみです。
非 normative な参考文献
- 私の嘆願に耳を傾け、Go — そしてあなたが取り組んでいる他のプロジェクト — のための優れた CL 説明を書いてください。
- CL の説明は、将来、何がなされたのか、そしてなぜなされたのかを説明する公開ドキュメントです。
GitHub プルリクエスト
GitHub プルリクエストを使用している場合、コミットメッセージは、PR のタイトルと説明に基づいて GerritBot によって構築されます。GerritBot は最終的なコミットメッセージをどのように決定しますか?を参照してください。
コミットメッセージの変更を依頼された場合は、PR を変更する必要があります。
このコンテンツは Go Wiki の一部です。