태그

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

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

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

태그의 생성 또는 삭제는 웹훅을 사용하여 슬랙 알림과 같은 자동화 작업을 실행하거나, 리포지터리 미러를 업데이트하는 신호 또는 if: $CI_COMMIT_TAG를 사용하여 CI/CD 파이프라인을 실행하는 트리거로 사용할 수 있습니다.

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

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

단일 태그 예시

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

프로젝트의 태그 보기

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

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

커밋 디렉터리에서 태그된 커밋 보기

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

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

이 태그의 커밋 디렉터리을 보려면 태그 이름을 선택합니다.

태그 생성

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

명령줄에서

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

  1. 가벼운 태그를 생성하려면 git tag TAG_NAME 명령어를 실행하여 TAG_NAME을 원하는 태그 이름으로 변경합니다.
  2. 주석이 달린 태그를 생성하려면 명령줄의 git tag 버전 중 하나를 사용하여 다음을 실행합니다:

    # 이 짧은 버전에서 주석이 달린 태그의 이름은 "v1.0"이고 메시지는 "버전 1.0"입니다.
    git tag -a v1.0 -m "버전 1.0"
       
    # 텍스트 편집기에서 'v1.0'에 대한 긴 태그 메시지를 작성하려면 다음을 사용하세요.
    git tag -a v1.0
    
  3. 태그를 upstream으로 푸시하려면 git push origin --tags를 실행합니다.

UI에서

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

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

태그 이름 짓기

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로 태그를 제거하는 것을 방지하려면 push rule을 만듭니다.

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

GitLab CI/CD는 태그를 식별하기 위한 CI_COMMIT_TAG 변수를 제공합니다. 이 변수를 사용하여 작업 규칙 및 워크플로우 규칙에서 태그로 트리거된 파이프라인을 테스트할 수 있습니다.

프로젝트의 CI/CD 파이프라인 구성인 .gitlab-ci.yml 파일에서 새로운 태그를 기반으로 트리거할 수 있습니다:

관련 주제