コミットメッセージテンプレート

GitLab はコミットテンプレートを使って、特定の種類のコミット用のデフォルトメッセージを作成します。これらのテンプレートは、コミットメッセージが特定の書式に従ったり、特定の情報を含むように促します。ユーザーはマージリクエストの際にこれらのテンプレートを上書きすることができます。

コミットテンプレートは、レビュー提案の構文に似た構文を使います。

コミットテンプレートの設定

デフォルトのテンプレートに必要な情報が含まれていない場合は、プロジェクトのコミットテンプレートを変更します。

前提条件

  • 少なくともプロジェクトのメンテナーのロールを持っている必要があります。

そのためには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 設定 > マージリクエストを選択します。
  3. 作成するテンプレートのタイプに応じて、次のいずれかにスクロールします。 マージコミットメッセージテンプレートまたは スクワッシュコミットメッセージテンプレート.
  4. 希望のコミット・タイプに対して、デフォルトのメッセージを入力します。静的テキストと変数の両方を使用できます。各テンプレートは最大500文字に制限されていますが、テンプレートをデータで置き換えた後の最終的なメッセージはもっと長くなる可能性があります。
  5. 変更を保存を選択します。

マージコミットのデフォルトテンプレート

マージコミットメッセージのデフォルトテンプレートは次のとおりです:

Merge branch '%{source_branch}' into '%{target_branch}'

%{title}

%{issues}

See merge request %{reference}

スカッシュコミットのデフォルトテンプレート

マージ時にコミットをスクワッシュするようにプロジェクトを設定している場合、GitLabはこのテンプレートでスクワッシュコミットメッセージを作成します:

%{title}

コミットテンプレートでサポートしている変数

  • GitLab 14.5 で導入されました
  • first_commitfirst_multiline_commit 変数が GitLab 14.6 で導入されました。
  • urlGitLab14.7で導入された変数、approved_bymerged_by
  • co_authored_by GitLab 14.7で導入された変数。
  • all_commits GitLab 14.9 で導入された変数。
  • reviewed_by GitLab 15.7 で導入された変数。
  • local_reference GitLab 16.1 で導入された変数。
  • source_project_id GitLab 16.3 で導入された変数。

コミットメッセージテンプレートはこれらの変数に対応しています:

変数説明出力例
%{source_branch}マージされるブランチの名前。my-feature-branch
%{target_branch}変更が適用されるブランチの名前。main
%{title}マージリクエストのタイトル。Fix tests and translations
%{issues}フレーズを含む文字列Closes <issue numbers>.マージリクエストの説明で言及された、issueクローズパターンにマッチするすべてのイシューをコンテナで含めます。イシューがない場合は空です。Closes #465, #190 and #400
%{description}マージリクエストの説明。 Merge request description.
Can be multiline.
%{reference}マージリクエストへの参照。group-name/project-name!72359
%{local_reference}マージリクエストへのローカルリファレンス。!72359
%{source_project_id}マージリクエストのソースプロジェクトの ID。123
%{first_commit}マージリクエスト diff の最初のコミットのメッセージ。Update README.md
%{first_multiline_commit}マージコミットでない最初のコミットで、本文に複数行のメッセージがある場合のメッセージの全文。すべてのコミットが複数行でない場合のマージリクエストタイトル。 Update README.md

Improved project description in readme file.
%{url}マージリクエストの完全な URL。https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1
%{reviewed_by} Reviewed-by Git commit trailer 形式で、一括コメントでレビューを投稿したユーザーに基づく、マージリクエストのレビュアーの行で区切られたリスト。 Reviewed-by: Sidney Jones <sjones@example.com>
Reviewed-by: Zhang Wei <zwei@example.com>
%{approved_by} Approved-by Git commit trailer フォーマットでのマージリクエスト承認者の行で区切られたリスト。 Approved-by: Sidney Jones <sjones@example.com>
Approved-by: Zhang Wei <zwei@example.com>
%{merged_by}マージリクエストをマージしたユーザー。Alex Garcia <agarcia@example.com>
%{co_authored_by}コミット作成者の名前と電子メールをCo-authored-by Git commit trailer フォーマットで表示します。マージリクエストの直近の 100 コミットの作成者に限定します。 Co-authored-by: Zane Doe <zdoe@example.com>
Co-authored-by: Blake Smith <bsmith@example.com>
%{all_commits}マージリクエスト内のすべてのコミットからのメッセージ。最新のコミット 100 件に限定します。100KiBを超えるコミット本体とマージコミットメッセージはスキップします。 * Feature introduced

This commit implements feature
Changelog:added

* Bug fixed

* Documentation improved

This commit introduced better docs.

空の変数のみを含む行は削除されます。削除される行の前後に空行がある場合、その前の空行も削除されます。

開いているマージリクエストのコミットメッセージを編集すると、GitLab は自動的にコミットメッセージを再度更新します。コミットメッセージをプロジェクトテンプレートに戻すには、ページをリロードしてください。