태그
Git에서 태그는 리포지터리의 기록 중요한 지점을 표시합니다. Git은 두 가지 유형의 태그를 지원합니다:
- 가벼운 태그는 특정 커밋을 가리키며 다른 정보를 포함하지 않습니다. 소프트 태그로도 알려져 있습니다. 필요에 따라 생성하거나 제거할 수 있습니다.
- 주석이 달린 태그는 메타데이터를 포함하며 확인 목적으로 서명할 수 있으며 변경할 수 없습니다.
태그의 생성 또는 삭제는 웹훅을 사용하여 슬랙 알림과 같은 자동화 작업을 실행하거나,
리포지터리 미러를 업데이트하는 신호 또는
if: $CI_COMMIT_TAG
를 사용하여 CI/CD 파이프라인을 실행하는 트리거로 사용할 수 있습니다.
릴리스를 생성할 때도 GitLab은 릴리스 지점을 표시하는 태그를 생성합니다. 많은 프로젝트에서 주석이 달린 릴리스 태그를 안정적인 브랜치와 결합합니다. 배포 또는 릴리스 태그를 자동으로 설정하는 것을 고려해보세요.
GitLab UI에서 각 태그는 다음을 표시합니다:
- 태그 이름. ()
- 선택 사항. 태그가 보호되어 있는 경우 protected 배지가 표시됩니다.
- 커밋 SHA (), 해당 커밋 내용에 연결됩니다.
- 커밋 제목 및 생성 날짜
- 선택 사항. 릴리스로의 링크 ().
- 선택 사항. 파이프라인이 실행된 경우 현재 파이프라인 상태가 표시됩니다.
- 태그와 연결된 소스 코드 및 아티팩트의 다운로드 링크
- 릴리스 생성 () 링크
- 태그를 삭제하는 링크
프로젝트의 태그 보기
프로젝트의 모든 기존 태그를 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > 태그를 선택합니다.
커밋 디렉터리에서 태그된 커밋 보기
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > 커밋을 선택합니다.
-
태그가 지정된 커밋에는 태그 아이콘이 () 표시되며 태그 이름이 표시됩니다. 다음은
v1.26.0
으로 태그가 지정된 커밋의 예시입니다:
이 태그의 커밋 디렉터리을 보려면 태그 이름을 선택합니다.
태그 생성
태그는 명령줄 또는 GitLab UI에서 생성할 수 있습니다.
명령줄에서
명령줄에서 가벼운 태그 또는 주석이 달린 태그를 생성하고 upstream으로 푸시하려면:
- 가벼운 태그를 생성하려면
git tag TAG_NAME
명령어를 실행하여TAG_NAME
을 원하는 태그 이름으로 변경합니다. -
주석이 달린 태그를 생성하려면 명령줄의
git tag
버전 중 하나를 사용하여 다음을 실행합니다:# 이 짧은 버전에서 주석이 달린 태그의 이름은 "v1.0"이고 메시지는 "버전 1.0"입니다. git tag -a v1.0 -m "버전 1.0" # 텍스트 편집기에서 'v1.0'에 대한 긴 태그 메시지를 작성하려면 다음을 사용하세요. git tag -a v1.0
- 태그를 upstream으로 푸시하려면
git push origin --tags
를 실행합니다.
UI에서
GitLab UI에서 태그를 생성하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > 태그를 선택합니다.
- 새 태그 선택합니다.
- 태그 이름을 제공합니다.
- 생성 위치에서 기존 브랜치 이름, 태그 또는 커밋 SHA를 선택합니다.
- 선택 사항. 주석이 달린 태그를 생성하려면 메시지를 추가하거나 가볍게 만들기 위해 비워 둡니다.
- 태그 생성을 선택합니다.
태그 이름 짓기
Git은 태그 이름 규칙을 강제하여 태그 이름이 다른 도구와 호환되도록 합니다. GitLab은 태그 이름에 대한 추가 요구 사항을 강제하고 잘 구조화된 태그 이름에 대한 이점을 제공합니다.
GitLab은 모든 태그에 대해 다음과 같은 추가 규칙을 강제합니다:
- 태그 이름에는 공백이 허용되지 않습니다.
- 40자 또는 64자의 16진수 문자로 시작하는 태그 이름은 유사한 Git 커밋 해시와 비슷하기 때문에 금지됩니다.
- 태그 이름은
-
,refs/heads
,refs/tags
, 또는refs/remotes
로 시작할 수 없습니다. - 태그 이름은 대소문자를 구분합니다.
태그 삭제 방지
git push
로 태그를 제거하는 것을 방지하려면 push rule을 만듭니다.
태그에서 파이프라인 트리거
GitLab CI/CD는 태그를 식별하기 위한 CI_COMMIT_TAG
변수를 제공합니다.
이 변수를 사용하여 작업 규칙 및 워크플로우 규칙에서 태그로 트리거된 파이프라인을 테스트할 수 있습니다.
프로젝트의 CI/CD 파이프라인 구성인 .gitlab-ci.yml
파일에서 새로운 태그를 기반으로 트리거할 수 있습니다:
- 작업 수준에서
only
키워드로 - 파이프라인 수준에서 워크플로우 규칙 키워드로