태그
Git에서 태그는 리포지토리의 역사에서 중요한 지점을 표시합니다.
Git은 두 가지 유형의 태그를 지원합니다:
-
경량 태그는 특정 커밋을 가리키며 다른 정보를 포함하지 않습니다.
일반적으로 소프트 태그로 알려져 있습니다. 필요에 따라 생성하거나 제거할 수 있습니다. -
주석 태그는 메타데이터를 포함하며, 검증 목적으로 서명할 수 있으며,
변경할 수 없습니다.
태그의 생성 또는 삭제는 자동화를 위한 트리거로 사용할 수 있습니다.
포함하여:
-
웹후크를 사용하여
Slack 알림과 같은 작업을 자동화합니다. - 리포지토리 미러를 업데이트하도록 신호를 보냅니다.
-
if: $CI_COMMIT_TAG
를 사용하여
CI/CD 파이프라인을 실행합니다.
릴리스를 생성하면
GitLab은 릴리스 지점을 표시하기 위해 태그를 생성합니다.
많은 프로젝트가 주석 릴리스 태그를 안정적인 브랜치와 결합합니다.
배포 또는 릴리스 태그를 자동으로 설정하는 것을 고려하세요.
GitLab UI에서 각 태그는 다음을 표시합니다:
- 태그 이름. ()
- 선택 사항. 태그가 보호됨인 경우, 보호됨 배지.
- 커밋 SHA (), 커밋 내용과 연결되어 있습니다.
- 커밋의 제목 및 생성 날짜.
- 선택 사항. 릴리스에 대한 링크 ().
- 선택 사항. 파이프라인이 실행된 경우, 현재 파이프라인 상태.
- 태그에 연결된 소스 코드 및 아티팩트의 다운로드 링크.
- 릴리스 생성 () 링크.
- 태그를 삭제하는 링크.
프로젝트의 태그 보기
프로젝트에 대한 모든 기존 태그를 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 소스 코드 > 태그를 선택합니다.
커밋 목록에서 태그가 있는 커밋 보기
- GitLab 15.10에서 도입됨.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 소스 코드 > 커밋을 선택합니다.
-
태그가 있는 커밋은 태그 아이콘 ()과 태그 이름으로 레이블이 붙습니다.
이 예시는v1.26.0
으로 태그가 달린 커밋을 보여줍니다:
이 태그의 커밋 목록을 보려면 태그 이름을 선택합니다.
태그 생성
태그는 명령줄 또는 GitLab UI에서 생성할 수 있습니다.
명령줄에서
명령줄에서 경량 또는 주석 태그를 생성하고 업스트림으로 푸시하려면:
- 경량 태그를 생성하려면
git tag TAG_NAME
명령을 실행하고
TAG_NAME
을 원하는 태그 이름으로 변경합니다. -
주석 태그를 생성하려면, 명령줄에서
git tag
의 버전 중 하나를 실행합니다:# 이 짧은 버전에서, 주석 태그의 이름은 "v1.0"이며, # 메시지는 "Version 1.0"입니다. git tag -a v1.0 -m "Version 1.0" # 이 버전을 사용하여 텍스트 편집기에서 주석 태그 "v1.0"에 대해 # 더 긴 태그 메시지를 작성합니다. git tag -a v1.0
-
git push origin --tags
로 태그를 업스트림으로 푸시합니다.
UI에서 태그 생성하기
GitLab UI에서 태그를 생성하려면:
- 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- Code > Tags를 선택합니다.
- New tag를 선택합니다.
- Tag name을 제공합니다.
- Create from에서 기존 브랜치 이름, 태그 또는 커밋 SHA를 선택합니다.
- 선택 사항: 주석이 있는 태그를 생성하려면 Message를 추가하거나 가벼운 태그를 생성하려면 빈 상태로 둡니다.
- Create tag를 선택합니다.
태그 이름 정하기
Git은 태그 이름 규칙을 적용하여 태그 이름이 다른 도구와 호환될 수 있도록 보장합니다. GitLab은 태그 이름에 대한 추가 요구 사항을 부과하며, 잘 구조화된 태그 이름에 대한 이점을 제공합니다.
GitLab은 모든 태그에 대해 다음 추가 규칙을 적용합니다:
- 태그 이름에 공백을 사용할 수 없습니다.
- 40 또는 64의 16진수 문자로 시작하는 태그 이름은 Git 커밋 해시와 유사하기 때문에 금지됩니다.
- 태그 이름은
-
,refs/heads/
,refs/tags/
, 또는refs/remotes/
로 시작할 수 없습니다. - 태그 이름은 대소문자를 구분합니다.
태그 삭제 방지
사용자가 git push
를 사용하여 태그를 제거하지 못하도록 하려면 푸시 규칙을 생성하세요.
태그에서 파이프라인 트리거하기
GitLab CI/CD는 파이프라인 구성에서 태그를 식별하기 위해 미리 정의된 변수 CI_COMMIT_TAG
를 제공합니다. 이 변수를_JOB 규칙 및 워크플로 규칙에서 사용하여 태그에 의해 파이프라인이 트리거되었는지 테스트할 수 있습니다.
기본적으로 CI/CD 작업에 특정 규칙이 설정되어 있지 않으면 새로 생성된 태그에 대한 태그 파이프라인에 포함됩니다.
프로젝트의 CI/CD 파이프라인 구성에 대한 .gitlab-ci.yml
파일에서 CI_COMMIT_TAG
변수를 사용하여 새 태그에 대한 파이프라인을 제어할 수 있습니다: