본문 바로가기
CI.CD/GIT

[GIT] 소프트웨어 릴리스 버전 마킹 (Tag)

반응형

이번 포스팅에서는 [실전 활용 및 고급 기술] 파트의 세부 주제인 소프트웨어 릴리스 버전 마킹 (Tag)에 대하여 상세히 알아보겠습니다.

1. Tag의 목적과 특성

소프트웨어 개발 과정에서 의미 있는 마일스톤(예: v1.0.0 정식 출시)에 도달했을 때, 해당 시점의 소스 코드를 쉽게 찾을 수 있도록 북마크를 남기는 기능이 바로 태그(Tag)입니다. 브랜치(Branch)와 유사하게 특정 커밋을 가리키는 포인터 역할을 하지만, 커밋이 추가되더라도 태그가 가리키는 위치는 절대 변하지 않는다는(Read-only) 결정적인 차이가 있습니다.

2. Tag의 두 가지 종류와 생성 방법

Git은 가벼운 태그(Lightweight)와 주석 태그(Annotated) 두 가지 형식을 지원합니다.

  • Lightweight Tag: 이름만 달아두는 임시 북마크 용도입니다.
    $ git tag v1.0.0-beta
  • Annotated Tag: 태그를 만든 사람, 이메일, 생성 날짜, 상세한 릴리스 노트를 포함하는 객체입니다. 정식 릴리스에는 이 방식을 권장합니다.
    $ git tag -a v1.0.0 -m "정식 1.0.0 버전 릴리스 (메인 기능 안정화)"

3. 원격 저장소 동기화

태그는 로컬에서 생성하더라도 일반적인 git push 명령어로는 원격 저장소에 전송되지 않습니다. 태그 전용 Push 명령을 사용해야 합니다.

# 특정 태그 하나만 원격에 업로드
$ git push origin v1.0.0

# 로컬에 있는 모든 태그를 한 번에 원격으로 업로드
$ git push origin --tags

지금까지 소프트웨어 릴리스 버전 마킹 (Tag)의 개념과 구체적인 활용 방안에 대해 살펴보았습니다. 이어지는 다음 포스팅에서 관련 심화 주제를 지속적으로 다루어보겠습니다.

반응형