Git

고급 02. Release와 Git Tag 버전 관리 실무 가이드

시맨틱 버저닝(SemVer) 원칙, Annotated 태그 생성 및 원격 배포, 롤백 기준점 설정과 태그 삭제/관리 실무 노하우

· 1min read · 3 views
고급 02. Release와 Git Tag 버전 관리 실무 가이드

핵심 요약

시맨틱 버저닝(SemVer vMAJOR.MINOR.PATCH) 원칙, 릴리즈 메타데이터가 포함된 Annotated 태그(-a) 생성, 원격 배포 및 태그 관리 노하우

브랜치는 커밋이 쌓일 때마다 앞으로 계속 이동하는 '움직이는 포인터'입니다. 반면 태그(Tag)는 특정 커밋 시점을 영구히 고정하여 박제하는 '고정 핀(Bookmark)'입니다. 상용 배포가 일어나는 순간마다 태그를 달아두면, 언제든 특정 시점의 코드로 즉각 되돌아가거나 롤백(Rollback)할 수 있습니다.


1. 시맨틱 버저닝 (Semantic Versioning 2.0)

실무에서는 버전을 임의로 짓지 않고 전 세계 표준인 vX.Y.Z (MAJOR.MINOR.PATCH) 규칙을 따릅니다.

        v2.4.1
         │ │ └── PATCH: 기존 호환성을 유지하는 단순 버그 수정
         │ └──── MINOR: 기존 기능과 호환되면서 새로운 기능/API 추가
         └────── MAJOR: 기존과 호환되지 않는 파괴적 변경 (Breaking Change / DB 대개편)

2. 실무에서는 무조건 Annotated 태그(-a)를 쓴다

Annotated 태그 생성 (실무 표준)

# main 브랜치로 이동 및 최신화
(develop) $ git switch main
Switched to branch 'main'

(main) $ git pull origin main

# -a (annotated), -m (릴리즈 메시지)
(main) $ git tag -a v1.3.0 -m "Release v1.3.0: 주문 결제 시스템 개편 및 카카오페이 연동"

태그 정보 상세 조회

(main) $ git show v1.3.0

3. 태그를 원격 저장소에 푸시하기

일반 git push는 브랜치 커밋만 전송할 뿐, 태그는 원격에 자동으로 올라가지 않습니다.

# 특정 태그 1개만 원격에 푸시 (가장 권장)
(main) $ git push origin v1.3.0

# 로컬에 있는 모든 태그를 한 번에 푸시
(main) $ git push origin --tags

4. 실수로 만든 태그 삭제하기

# 1. 로컬 태그 삭제 (-d)
(main) $ git tag -d v1.3.0

# 2. 이미 원격에 푸시된 태그 삭제
(main) $ git push origin --delete v1.3.0

Related Docs

Comments (0)

No comments yet. Be the first to comment!

Leave a Comment

로그인 후 댓글을 남길 수 있습니다.