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