커밋 메시지 템플릿
Tier: Free, Premium, Ultimate
Offering: GitLab.com, Self-Managed, GitLab Dedicated
GitLab은 특정 유형의 커밋을 위해 기본 메시지를 생성하기 위해 커밋 템플릿을 사용합니다. 이러한 템플릿은 커밋 메시지가 특정 형식을 따르거나 특정 정보를 포함하도록 장려합니다. 사용자는 Merge Request을 Merge할 때 이러한 템플릿을 재정의할 수 있습니다.
커밋 템플릿은 리뷰 제안의 구문과 유사한 구문을 사용합니다.
커밋 템플릿 구성
프로젝트의 기본 템플릿에 필요한 정보가 없는 경우 프로젝트의 커밋 템플릿을 변경하세요.
필수 사항:
- 프로젝트에 대한 유지자(Maintainer) 역할을 최소한으로 갖고 있어야 합니다.
다음 단계를 수행합니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- Settings > Merge Request을 선택합니다.
- 만들고자 하는 템플릿의 유형에 따라 Merge 커밋 메시지 템플릿 또는 스쿼시 커밋 메시지 템플릿으로 스크롤합니다.
- 원하는 커밋 유형에 대한 기본 메시지를 입력합니다. 정적 텍스트와 변수를 모두 사용할 수 있습니다. 각 템플릿은 최대 500자로 제한되지만 템플릿을 데이터로 대체한 후 최종 메시지가 더 길어질 수 있습니다.
- 변경 사항 저장을 선택합니다.
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은 커밋 메시지를 자동으로 다시 업데이트합니다. 프로젝트 템플릿으로 커밋 메시지를 복원하려면 페이지를 다시 로드하세요.