태그

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

Git에서 태그는 리포지토리의 역사에서 중요한 지점을 표시합니다.
Git은 두 가지 유형의 태그를 지원합니다:

  • 경량 태그는 특정 커밋을 가리키며 다른 정보를 포함하지 않습니다.
    일반적으로 소프트 태그로 알려져 있습니다. 필요에 따라 생성하거나 제거할 수 있습니다.
  • 주석 태그는 메타데이터를 포함하며, 검증 목적으로 서명할 수 있으며,
    변경할 수 없습니다.

태그의 생성 또는 삭제는 자동화를 위한 트리거로 사용할 수 있습니다.
포함하여:

릴리스를 생성하면
GitLab은 릴리스 지점을 표시하기 위해 태그를 생성합니다.
많은 프로젝트가 주석 릴리스 태그를 안정적인 브랜치와 결합합니다.
배포 또는 릴리스 태그를 자동으로 설정하는 것을 고려하세요.

GitLab UI에서 각 태그는 다음을 표시합니다:

단일 태그의 예

  • 태그 이름. ( )
  • 선택 사항. 태그가 보호됨인 경우, 보호됨 배지.
  • 커밋 SHA ( ), 커밋 내용과 연결되어 있습니다.
  • 커밋의 제목 및 생성 날짜.
  • 선택 사항. 릴리스에 대한 링크 ( ).
  • 선택 사항. 파이프라인이 실행된 경우, 현재 파이프라인 상태.
  • 태그에 연결된 소스 코드 및 아티팩트의 다운로드 링크.
  • 릴리스 생성 ( ) 링크.
  • 태그를 삭제하는 링크.

프로젝트의 태그 보기

프로젝트에 대한 모든 기존 태그를 보려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 소스 코드 > 태그를 선택합니다.

커밋 목록에서 태그가 있는 커밋 보기

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 소스 코드 > 커밋을 선택합니다.
  3. 태그가 있는 커밋은 태그 아이콘 ( )과 태그 이름으로 레이블이 붙습니다.
    이 예시는 v1.26.0으로 태그가 달린 커밋을 보여줍니다:

    커밋 보기에서 태그가 있는 커밋

이 태그의 커밋 목록을 보려면 태그 이름을 선택합니다.

태그 생성

태그는 명령줄 또는 GitLab UI에서 생성할 수 있습니다.

명령줄에서

명령줄에서 경량 또는 주석 태그를 생성하고 업스트림으로 푸시하려면:

  1. 경량 태그를 생성하려면 git tag TAG_NAME 명령을 실행하고
    TAG_NAME을 원하는 태그 이름으로 변경합니다.
  2. 주석 태그를 생성하려면, 명령줄에서 git tag의 버전 중 하나를 실행합니다:

    # 이 짧은 버전에서, 주석 태그의 이름은 "v1.0"이며,  
    # 메시지는 "Version 1.0"입니다.
    git tag -a v1.0 -m "Version 1.0"  
    
    # 이 버전을 사용하여 텍스트 편집기에서 주석 태그 "v1.0"에 대해  
    # 더 긴 태그 메시지를 작성합니다.
    git tag -a v1.0  
    
  3. git push origin --tags로 태그를 업스트림으로 푸시합니다.

UI에서 태그 생성하기

GitLab UI에서 태그를 생성하려면:

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Code > Tags를 선택합니다.
  3. New tag를 선택합니다.
  4. Tag name을 제공합니다.
  5. Create from에서 기존 브랜치 이름, 태그 또는 커밋 SHA를 선택합니다.
  6. 선택 사항: 주석이 있는 태그를 생성하려면 Message를 추가하거나 가벼운 태그를 생성하려면 빈 상태로 둡니다.
  7. Create tag를 선택합니다.

태그 이름 정하기

Git은 태그 이름 규칙을 적용하여 태그 이름이 다른 도구와 호환될 수 있도록 보장합니다. GitLab은 태그 이름에 대한 추가 요구 사항을 부과하며, 잘 구조화된 태그 이름에 대한 이점을 제공합니다.

GitLab은 모든 태그에 대해 다음 추가 규칙을 적용합니다:

  • 태그 이름에 공백을 사용할 수 없습니다.
  • 40 또는 64의 16진수 문자로 시작하는 태그 이름은 Git 커밋 해시와 유사하기 때문에 금지됩니다.
  • 태그 이름은 -, refs/heads/, refs/tags/, 또는 refs/remotes/로 시작할 수 없습니다.
  • 태그 이름은 대소문자를 구분합니다.

태그 삭제 방지

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

사용자가 git push를 사용하여 태그를 제거하지 못하도록 하려면 푸시 규칙을 생성하세요.

태그에서 파이프라인 트리거하기

GitLab CI/CD는 파이프라인 구성에서 태그를 식별하기 위해 미리 정의된 변수 CI_COMMIT_TAG를 제공합니다. 이 변수를_JOB 규칙 및 워크플로 규칙에서 사용하여 태그에 의해 파이프라인이 트리거되었는지 테스트할 수 있습니다.

기본적으로 CI/CD 작업에 특정 규칙이 설정되어 있지 않으면 새로 생성된 태그에 대한 태그 파이프라인에 포함됩니다.

프로젝트의 CI/CD 파이프라인 구성에 대한 .gitlab-ci.yml 파일에서 CI_COMMIT_TAG 변수를 사용하여 새 태그에 대한 파이프라인을 제어할 수 있습니다:

  • rules:if로 작업 수준에서.
  • workflow 키워드로 파이프라인 수준에서.

관련 주제