커밋 메시지 템플릿

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated
  • GitLab 14.5에서 도입되었습니다.
  • GitLab 14.6에서 스쿼시 커밋 템플릿이 도입되었습니다.

GitLab은 특정 유형의 커밋을 위해 기본 메시지를 생성하기 위해 커밋 템플릿을 사용합니다. 이러한 템플릿은 커밋 메시지가 특정 형식을 따르거나 특정 정보를 포함하도록 장려합니다. 사용자는 병합 요청을 병합할 때 이러한 템플릿을 재정의할 수 있습니다.

커밋 템플릿은 리뷰 제안의 구문과 유사한 구문을 사용합니다.

커밋 템플릿 구성

기본 템플릿에 필요한 정보가 포함되어 있지 않은 경우 프로젝트의 커밋 템플릿을 변경하세요.

필수 조건:

  • 프로젝트에 적어도 Maintainer 역할이 있어야 합니다.

다음 단계를 수행합니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > 병합 요청을 선택합니다.
  3. 생성하려는 템플릿 유형에 따라 병합 커밋 메시지 템플릿 또는 스쿼시 커밋 메시지 템플릿으로 스크롤합니다.
  4. 원하는 커밋 유형에 대한 기본 메시지를 입력합니다. 정적 텍스트와 변수를 모두 사용할 수 있습니다. 각 템플릿은 최대 500자로 제한되지만 템플릿을 데이터로 대체한 후 최종 메시지가 더 길어질 수 있습니다.
  5. 변경사항 저장을 선택합니다.

병합 커밋의 기본 템플릿

병합 커밋 메시지의 기본 템플릿은 다음과 같습니다:

'%{source_branch}' 브랜치를 '%{target_branch}'로 병합

%{title}

%{issues}

병합 요청 참조: %{reference}

스쿼시 커밋의 기본 템플릿

프로젝트에서 병합 시 커밋을 스쿼시하도록 구성한 경우 GitLab은 다음 템플릿으로 스쿼시 커밋 메시지를 생성합니다:

%{title}

커밋 템플릿의 지원되는 변수

  • GitLab 14.5에서 도입되었습니다.
  • first_commitfirst_multiline_commit 변수는 GitLab 14.6에서 도입되었습니다.
  • url, approved_by, 및 merged_by 변수는 GitLab 14.7에서 도입되었습니다.
  • 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} 병합 요청의 제목입니다. 테스트 및 번역 수정
%{issues} Closes <이슈 번호> 구문을 포함하는 문자열입니다. 병합 요청 설명에 언급된 모든 이슈를 포함하며 이슈 종료 패턴과 일치합니다. 이슈가 언급되지 않은 경우 비어 있습니다. Closes #465, #190 및 #400
%{description} 병합 요청 설명입니다. 병합 요청 설명.
여러 줄로 구성될 수 있습니다.
%{reference} 병합 요청에 대한 참조입니다. group-name/project-name!72359
%{local_reference} 병합 요청에 대한 지역 참조입니다. !72359
%{source_project_id} 병합 요청의 소스 프로젝트 ID입니다. 123
%{first_commit} 병합 요청 차이의 첫 번째 커밋의 전체 메시지입니다. README.md 업데이트
%{first_multiline_commit} 병합 커밋이 아니고 복수 줄 메시지를 가진 첫 번째 커밋의 전체 메시지입니다. 모든 커밋이 복수 줄이 아니면 병합 요청 제목입니다. README.md 업데이트

README 파일에서 프로젝트 설명을 개선했습니다.
%{url} 병합 요청의 전체 URL입니다. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1
%{reviewed_by} 일괄 코멘트를 통해 리뷰를 제출한 사용자를 기반으로 한 병합 요청 리뷰어의 줄 단위 목록입니다. Reviewed-by Git 커밋 트레일러 형식입니다. Reviewed-by: Sidney Jones <sjones@example.com>
Reviewed-by: Zhang Wei <zwei@example.com>
%{approved_by} 병합 요청 승인자의 줄 단위 목록입니다. Approved-by Git 커밋 트레일러 형식입니다. 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 커밋 트레일러 형식의 커밋 저자 이름 및 이메일입니다. 병합 요청의 100개 최근 커밋 작성자로 제한됩니다. Co-authored-by: Zane Doe <zdoe@example.com>
Co-authored-by: Blake Smith <bsmith@example.com>
%{all_commits} 병합 요청의 모든 커밋 메시지입니다. 최근 100개 커밋으로 제한됩니다. 100 KiB를 초과하거나 병합 커밋 메시지를 건너뛰는 커밋 본문은 제외됩니다. * 기능 도입

이 커밋은 기능을 구현합니다
Changelog: 추가됨

* 버그 수정

* 문서 개선

이 커밋은 더 나은 설명을 포함합니다.

빈 변수만 포함한 줄은 제거됩니다. 제거할 줄이 전후로 모두 빈 줄인 경우 전후 빈 줄도 제거됩니다.

열려 있는 병합 요청의 커밋 메시지를 편집한 후, GitLab은 커밋 메시지를 자동으로 다시 업데이트합니다. 프로젝트 템플릿으로 커밋 메시지를 복원하려면 페이지를 새로고침하세요.

관련 주제