태그

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

Git에서 태그는 저장소의 히스토리에서 중요한 지점을 표시합니다. Git은 두 가지 유형의 태그를 지원합니다:

  • 가벼운 태그는 특정 커밋을 가리키며 다른 정보를 포함하지 않습니다. 소프트 태그라고도 합니다. 필요할 때 만들거나 제거할 수 있습니다.
  • 주석이 달린 태그는 메타데이터를 포함하며 검증 목적으로 서명될 수 있으며 변경할 수 없습니다.

태그의 생성 또는 삭제는 다음과 같은 자동화를 위한 트리거로 사용될 수 있습니다:

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

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

단일 태그 예시

  • 태그 이름. ()
  • 선택 사항. 태그가 보호될 경우, protected 뱃지가 있습니다.
  • 커밋 SHA (), 해당 커밋의 내용에 연결됩니다.
  • 커밋의 제목과 생성 날짜.
  • 선택 사항. 릴리스에 대한 링크 ().
  • 선택 사항. 파이프라인을 실행했을 경우, 현재 파이프라인 상태가 표시됩니다.
  • 태그에 연결된 소스 코드 및 아티팩트의 다운로드 링크.
  • 릴리스 생성() 링크.
  • 태그 삭제 링크.

프로젝트에서 태그 보기

프로젝트의 모든 기존 태그를 보려면:

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

커밋 목록에서 태그된 커밋 보기

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. Code > 커밋을 선택합니다.
  3. 태그가 있는 커밋은 태그 아이콘 ()과 태그 이름이 표시됩니다. 이 예에서는 v1.26.0으로 태그가 지정된 커밋이 표시됩니다:

    커밋 보기의 태그가 지정된 커밋

이 태그에서 커밋 목록을 보려면 태그 이름을 선택하세요.

태그 생성

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

명령줄에서

명령줄에서 가벼운 태그 또는 주석이 달린 태그를 생성하고 upstream으로 푸시하려면:

  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. 태그를 upstream으로 푸시하려면 git push origin --tags를 사용합니다.

UI에서

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

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. Code > 태그를 선택합니다.
  3. 새 태그를 선택합니다.
  4. 태그 이름을 제공합니다.
  5. 여기서 만들기에서 기존 브랜치 이름, 태그 또는 커밋 SHA를 선택합니다.
  6. 선택 사항. 주석이 달린 태그를 만들려면 메시지를 추가하거나, 가벼운 태그를 만들려면 비워 둡니다.
  7. 태그 만들기를 선택합니다.

태그 이름 지정

태그 이름이 다른 도구와 호환되도록 하기 위해 Git은 태그 이름 규칙을 강제합니다. GitLab은 태그 이름에 추가적인 규칙을 적용하고 잘 구조화된 태그 이름에 대한 혜택을 제공합니다.

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

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

태그 삭제 방지

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

git push로 태그를 삭제하는 것을 방지하려면 push rule을 만듭니다.

태그로부터 파이프라인 트리거

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

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

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

  • rules:if를 사용하여 작업 수준에서.
  • workflow 키워드를 사용하여 파이프라인 수준에서.

관련 주제