커밋 메시지 템플릿

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

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

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

커밋 템플릿 구성

프로젝트의 기본 템플릿에 필요한 정보가 없는 경우 프로젝트의 커밋 템플릿을 변경하세요.

필수 사항:

  • 프로젝트에 대한 유지자(Maintainer) 역할을 최소한으로 갖고 있어야 합니다.

다음 단계를 수행합니다.

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

Merge 커밋을 위한 기본 템플릿

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

브랜치 '%{source_branch}'를 '%{target_branch}'로 Merge

%{title}

%{issues}

Merge Request %{reference} 참조

스쿼시 커밋을 위한 기본 템플릿

프로젝트를 Merge 시 커밋을 스쿼시하도록 구성했다면, GitLab은 다음 템플릿으로 스쿼시 커밋 메시지를 생성합니다:

%{title}

커밋 템플릿에서 지원되는 변수

커밋 메시지 템플릿은 다음 변수를 지원합니다:

변수 설명 출력 예시
%{source_branch} Merge되는 브랜치의 이름 my-feature-branch
%{target_branch} 변경 사항이 적용된 브랜치의 이름 main
%{title} Merge Request의 제목 테스트 및 번역 수정
%{issues} Closes <이슈 번호> 구문을 포함하는 문자열. Merge Request 설명에 언급된 모든 이슈 중 이슈 마감 패턴과 일치하는 것이 들어 있음. 이슈가 언급되지 않은 경우 비어 있음. Closes #465, #190 and #400
%{description} Merge Request의 설명 Merge Request 설명.
여러 줄에 걸쳐 있을 수 있음.
%{reference} Merge Request에 대한 참조 group-name/project-name!72359
%{local_reference} Merge 요처의 로컬 참조 !72359
%{source_project_id} Merge Request의 소스 프로젝트 ID 123
%{first_commit} Merge Request 차이 중 첫 번째 커밋의 전체 메시지 README.md 업데이트
%{first_multiline_commit} 스쿼시 커밋이 아닌 첫 번째 커밋의 전체 메시지. 만약 모든 커밋이 여러 줄이 아닌 경우 Merge Request 제목입니다. README.md 업데이트

리드미 파일에서 프로젝트 설명 개선
%{url} Merge Request의 전체 URL https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1
%{reviewed_by} GitLab 15.7에서 도입된 리뷰어 디렉터리을 줄 단위로 표시한 변수. 배치 코멘트를 통해 리뷰를 제출한 사용자에 기반하여 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} Merge Request을 Merge한 사용자 Alex Garcia <agarcia@example.com>
%{co_authored_by} Co-authored-by Git 커밋 트레일러 형식으로 표시된 커밋 작성자의 이름과 이메일을 나열한 변수. Merge Request에서 최근 100개의 커밋 작성자에 한정됨. Co-authored-by: Zane Doe <zdoe@example.com>
Co-authored-by: Blake Smith <bsmith@example.com>
%{all_commits} Merge Request의 모든 커밋 메시지. 최근 100개의 커밋에 한정됨. 100KB를 초과하는 커밋 본문 및 Merge 커밋 메시지는 건너뜁니다. * 기능 도입

이 커밋은 기능을 구현합니다
변경 로그: 추가됨

* 버그 수정

* 문서 개선

이 커밋은 더 나은 문서를 소개했습니다

비어 있는 변수만을 포함한 행은 제거됩니다. 제거할 행이 앞뒤로 빈 줄로 되어 있으면 앞의 빈 줄도 제거됩니다.

열린 Merge Request의 커밋 메시지를 편집한 후에 GitLab은 커밋 메시지를 자동으로 다시 업데이트합니다. 프로젝트 템플릿으로 커밋 메시지를 복원하려면 페이지를 다시 로드하세요.

관련 주제