태그로 버전 관리하기

2025. 9. 16. 11:37·Git

안녕하세요 

이번 글은 Git에 대해서 요즘 공부하면서 알게 된 Git Tag를 정리해 보려 합니다.

 

git에서 태그란 저희가 알고 있는 것 처럼 무언가를 표시를 해두기 위한 태깅 기능을 위한 것으로, 특정 커밋을 태그해

두는 것입니다.

 

이렇게 태그를 붙여놓으면, 커밋번호를 적는 대신에 태그명을 적어서 간결하게 사용할 수도 있습니다.

나중에 작업을 하다보면 수백개의 커밋들이 쌓일 텐데, 그 커밋들 중에 중요한것만 태그를 지정해서

가독성있게 사용할 수 있습니다.

 

커밋과 태그의 차이점이라고 한다면 커밋의 경우 checkout 하여 내용을 수정할 수 있으나,

태그는 수정이 불가능 하며, 읽기 전용 커밋 같은 개념입니다.

Git Tag 사용 방법

git의 태그를 생성할 때 lightweight와 annotated 두 종류가 있습니다.

 

Lightweight의 경우 특정 커밋을 가르키는 역할을 합니다. 포인터 역할이라고 할 수 있습니다. 

 

Annotated는 만든 사람, 이메일, 날짜, 메세지를 객체로 따로 저장합니다.
따라서 Lightweight와는 달리 고유의 저장공간이 또 생깁니다.

 

Lightweight 태그 생성

# 태그를 생성
$ git tag <TAG NAME>
$ git tag v1.0

 

Annotated 태그 생성

lightweight 태그는 태그에 대한 정보는 없기 때문에 태그를 남기면서 정보를 같이 남기고 싶은 경우

Annotated 태그를 사용합니다. (커밋 메세지처럼 보시면 됩니다.)

 

Annotated 태그를 생서하는 방법은 tag -a 옵션을 사용합니다.

 

커밋과 마찬가지로 태그를 남길때에도 메시지를 남겨야 하며 -m 옵셕을 사용하면 태깅과 동시에 메시지를

작성할 수 있습니다.

 

  • -a 는 Annotated 태그를 의미합니다.
  • -m 옵션은 메시지를 함께 저장할 때 사용합니다. 붙이지 않으면 자동으로 Git 편집기를 실행시킵니다.
# Annotated 태그 생성 & 태그 메세지
$ git tag -a <TAG NAME> -m "<TAG MESSAGE>"
$ git tag -a v1.1 -m "second tag 1.1"
# 특정커밋을 Annotated 태그로 지정
$ git tag -a v0.1.0 322b42f

lightweight vs annotated 두 태그의 차이 

구분 Lightweight Annotated

저장 방식 태그 이름 → 커밋 SHA로 바로 연결(ref) 태그 객체(tag object)에 연결(메시지/작성자/일시/서명 포함)
메타데이터(작성자·시간·메시지) ❌ 없음 ✅ 있음
서명(GPG/SSH) ❌ 불가 ✅ 가능(-s)
릴리스·배포 기록성 낮음 높음(감사추적, 릴리스 노트 보관)
용도 임시 체크포인트, 개인 북마크 정식 릴리스, 공개 이력, CI 트리거
git describe 기본 탐색 잘 안 잡힘(옵션 필요) 잘 잡힘(기본 대상)

 

태그 삭제

로컬 저장소의 태그를 삭제하려면 -d 또는 --delete 옵션을 사용한다

$ git tag -d v0.1.0

태그 수정

lightweight 태그 수정

# git tag <NEW TAG NAME> <OLD TAG NAME>
$ git tag v1.1.1 v1.1.0

# git tag -d <OLD TAG NAME>
$ git tag -d v1.1.0

 

annotated 태그 수정

$ git show-ref --tags --dereference
37c606d7a2d7390649748ec8acd76cd07876c2eb refs/tags/v1.2.0
88c34a1ca247851f721738e36ca4228cf8b0724c refs/tags/v1.2.0^{}

# git tag -a <NEW TAG NAME> <OLD TAG NAME>^{} -m "<NEW TAG MESSAGE>"
$ git tag -a v1.3.0 v1.2.0^{} -m "<NEW TAG MESSAGE>"

# 이렇게 commit checksum 정보로 새로운 tag 를 생성하는 것과 동일하다
$ git tag -a v1.3.0 88c34a1 -m "<NEW TAG MESSAGE>"

git push origin <태그 이름> (태그 원격저장소 push 하기)

git push 명령은 자동으로 리모트 서버에 태그를 전송하지 않습니다.

그렇기 때문에 태그를 만들었으면 서버에 별도로 Push를 해야 합니다.

# git push origin <태그 이름>
$ git push origin v1.0

 

만약 한번에 태그를 모두 Push 하고 싶다면 --tags 옵션을 추가하여 git push 명령을 실행합니다.

# 모든 태그를 한꺼번에 push하기
$ git push origin --tags

 

이제 누군가 저장소에서 Clone 하거나 Pull 하면 모든 태그 정보도 함께 전송됩니다.

마무리

이렇게 Git 태그의 핵심만 가볍게 훑어보았습니다.
다음에는 이 태그를 실제로 어떻게 활용할지, 사례와 함께 정리해 보면 재미있을 것 같습니다.

 

오늘도 스테이블 하세요

 

'Git' 카테고리의 다른 글

git config로 나만의 다중 페르소나 완성하기  (0) 2025.09.24
'Git' 카테고리의 다른 글
  • git config로 나만의 다중 페르소나 완성하기
Code with yc
Code with yc
아직 부족하지만 조금씩 배우고자 하는 Back-end 개발자
  • Code with yc
    성장하는 개발 노트
    Code with yc
  • 전체
    오늘
    어제
    • 분류 전체보기 (30)
      • Programming (6)
        • Java (3)
        • Spring (2)
        • Python (0)
        • Go (0)
        • JavaScript (1)
        • React (0)
      • Data Infra (1)
        • Database (1)
        • Mysql (0)
        • Redis (0)
        • PostgreSQL (0)
        • ClickHouse (0)
        • RabbitMQ (0)
        • Kafaka (0)
      • DevOps (2)
        • Amazon AWS (2)
        • CI & CD (0)
        • Docker & k8s (0)
        • Oracle OCI (0)
      • AI (0)
      • Git (2)
      • CS (4)
        • Architecture (0)
        • Tools (3)
      • 회고 (9)
        • 일상 회고 (9)
        • 자격증 (0)
        • 책 후기 (0)
      • Side Project (6)
        • Yule Studio (1)
        • Synapse Talk (0)
        • Go utility box (1)
        • Spring Sandbox (2)
        • Front Sandbox (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • git
  • 공지사항

    • 새로운 브랜치로 이사 왔습니다!
  • 인기 글

  • 태그

    백엔드
    회사 기술 고민
    부족한 점
    Hephaistos
    front-end
    커리어로그
    회고
    Secret Access Key
    JavaScript
    Java 16
    회고록
    Tools
    회사 서비스 리뉴얼
    aws profile
    Access key
    AWS CLI 사용법
    lg유플러스부트캠프
    AWS configure
    Java
    게으름 극복하기
    한 달 회고록
    Spring Sandbox
    사이드 프로젝트
    한 주 회고
    회사
    성장하자
    프론트엔드 공부
    GIT
    db
    AWS CLI 인증
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Code with yc
태그로 버전 관리하기
상단으로

티스토리툴바