태그

상세정보: Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

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

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

태그의 생성 또는 삭제는 자동화의 트리거로 사용될 수 있습니다. 이는 다음과 같은 것들을 포함합니다:

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

GitLab UI에서는 각 태그마다 다음이 표시됩니다:

단일 태그의 예시

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

프로젝트의 태그 보기

프로젝트의 모든 기존 태그를 보려면 다음을 수행하세요:

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

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

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

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

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

태그 생성

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

명령줄에서

명령줄에서 가벼운 태그 또는 주석이 달린 태그를 생성하고 상류로 푸시하려면 다음을 수행하세요:

  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. 태그를 상류로 푸시하려면 git push origin --tags를 실행합니다.

GitLab UI에서

GitLab UI에서 태그를 생성하려면 다음을 수행하세요:

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

태그 이름 짓기

Git은 태그 이름이 다른 도구와 호환되도록 보장하기 위해 태그 이름 규칙을 강제합니다. GitLab은 태그 이름에 대한 추가 요구 사항을 강제하며, 잘 구조화된 태그 이름에 대한 이점을 제공합니다.

GitLab은 모든 태그에 다음 추가 규칙을 시행합니다:

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

태그 삭제 방지

Tier: Premium, Ultimate Offering: GitLab.com, 자체 관리, GitLab Dedicated

git push로 태그를 제거하는 것을 방지하려면 푸시 규칙을 만듭니다.

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

GitLab CI/CD는 CI_COMMIT_TAG 변수를 제공하여 태그를 식별합니다. 이 변수를 작업 규칙 및 워크플로우 규칙에서 사용하여 파이프라인이 태그에 의해 트리거되었는지 테스트합니다.

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

관련 주제