태그
상세정보: Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated
Git에서 태그는 저장소의 히스토리에서 중요한 지점을 나타냅니다. Git은 두 가지 유형의 태그를 지원합니다:
- 가벼운 태그는 특정 커밋을 가리키며 다른 정보를 포함하지 않습니다. 소프트 태그로도 알려져 있으며 필요에 따라 생성하거나 삭제할 수 있습니다.
- 주석이 달린 태그는 메타데이터를 포함하며 검증을 위해 서명될 수 있으며 변경할 수 없습니다.
태그의 생성 또는 삭제는 자동화의 트리거로 사용될 수 있습니다. 이는 다음과 같은 것들을 포함합니다:
- 웹훅을 사용하여 슬랙 알림과 같은 작업을 자동화합니다.
- 저장소 미러를 업데이트하도록 신호를 보냅니다.
-
if: $CI_COMMIT_TAG
로 CI/CD 파이프라인을 실행합니다.
또한, 릴리스를 생성할 때 GitLab은 릴리스 지점을 표시하기 위해 태그를 생성합니다. 많은 프로젝트에서 주석이 달린 릴리스 태그와 안정적인 브랜치를 결합합니다. 배포나 릴리스 태그를 자동으로 설정하는 것을 고려해보세요.
GitLab UI에서는 각 태그마다 다음이 표시됩니다:
- 태그 이름. ()
- 선택 사항. 태그가 보호되어 있는 경우 protected 배지.
- 커밋 SHA ()는 해당 커밋의 내용으로 연결됩니다.
- 커밋의 제목 및 생성 날짜.
- 선택 사항. 릴리스로의 링크 ().
- 선택 사항. 현재 파이프라인 상태가 실행된 경우 대기 중입니다.
- 태그와 연결된 소스 코드 및 아티팩트의 다운로드 링크.
- 릴리스 생성 () 링크.
- 태그를 삭제하는 링크.
프로젝트의 태그 보기
프로젝트의 모든 기존 태그를 보려면 다음을 수행하세요:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > 태그를 선택합니다.
커밋 목록에서 태그된 커밋 보기
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > 커밋을 선택합니다.
-
태그가 지정된 커밋은 태그 아이콘 ()과 태그 이름이 표시됩니다. 다음 예시는
v1.26.0
으로 태그가 지정된 커밋을 보여줍니다:
이 태그에 속한 커밋 목록을 보려면 태그 이름을 선택하세요.
태그 생성
태그는 명령줄이나 GitLab UI에서 생성할 수 있습니다.
명령줄에서
명령줄에서 가벼운 태그 또는 주석이 달린 태그를 생성하고 상류로 푸시하려면 다음을 수행하세요:
- 가벼운 태그를 생성하려면
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
- 태그를 상류로 푸시하려면
git push origin --tags
를 실행합니다.
GitLab UI에서
GitLab UI에서 태그를 생성하려면 다음을 수행하세요:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > 태그를 선택합니다.
- 새 태그를 선택합니다.
- 태그 이름을 제공합니다.
- Create from에서 기존 브랜치 이름, 태그 또는 커밋 SHA를 선택합니다.
- 선택 사항. 주석이 달린 태그를 생성하려면 메시지를 추가하거나 가벼운 태그를 생성하려면 비워둡니다.
- 태그 생성을 선택합니다.
태그 이름 짓기
Git은 태그 이름이 다른 도구와 호환되도록 보장하기 위해 태그 이름 규칙을 강제합니다. GitLab은 태그 이름에 대한 추가 요구 사항을 강제하며, 잘 구조화된 태그 이름에 대한 이점을 제공합니다.
GitLab은 모든 태그에 다음 추가 규칙을 시행합니다:
- 태그 이름에는 공백이 허용되지 않습니다.
- 40자 또는 64자의 16진수 문자로 시작하는 태그 이름은 비허용됩니다. 이는 Git 커밋 해시와 유사하기 때문입니다.
- 태그 이름은
-
,refs/heads
,refs/tags
, 또는refs/remotes
로 시작할 수 없습니다. - 태그 이름은 대소문자를 구분합니다.
태그 삭제 방지
git push
로 태그를 제거하는 것을 방지하려면 푸시 규칙을 만듭니다.
태그에서 파이프라인 트리거
GitLab CI/CD는 CI_COMMIT_TAG
변수를 제공하여 태그를 식별합니다. 이 변수를 작업 규칙 및 워크플로우 규칙에서 사용하여 파이프라인이 태그에 의해 트리거되었는지 테스트합니다.
프로젝트의 CI/CD 파이프라인 구성을 위한 .gitlab-ci.yml
파일에서 새로운 태그에 기반하여 트리거할 수 있습니다:
- 작업 단계에서
only
키워드를 사용하여. - 파이프라인 단계에서 워크플로우 규칙 키워드를 사용하여.