IT/Git
Git 17회차. Git 태그(Tag) 관리법
밥알이
2025. 7. 17. 06:27
🏷️ Git 17회차. Git 태그(Tag) 관리법 - 버전 릴리스의 핵심 기능
“v1.0.0”, “2025-07-release” 같은 버전 이름 보신 적 있으시죠? 바로 Git의 태그(Tag)
기능을 활용한 것입니다. 이번 회차에서는 Git 태그의 개념과 사용법, 실전 적용 방법까지 정리해드릴게요 😊
🤔 Git 태그(Tag)란?
Git 태그는 특정 커밋을 표시하는 이름표입니다. 보통 제품 출시, 배포, milestone 등 중요한 시점을 기록할 때 사용합니다.
- ✔️ 커밋 해시보다 이해하기 쉬운 버전명을 부여
- ✔️ 릴리스 히스토리를 명확하게 관리
- ✔️ 릴리스 노트, 배포 자동화와 연계 가능
한마디로 “이 시점이 v1.0.0 버전입니다!” 하고 알려주는 마크입니다 😊
📌 태그는 두 가지가 있어요
1️⃣ Lightweight Tag
- ✔️ 간단한 이름만 부여
- ✔️ 추가 정보 없이 커밋에 이름표만 붙임
- ✔️ 임시 버전, 빠른 체크에 적합
git tag v1.0.0
2️⃣ Annotated Tag
- ✔️ 작성자, 메시지, 날짜 포함
- ✔️ GPG 서명 가능 (공식 릴리스용)
- ✔️ 릴리스 기록, 배포용 태그로 적합
git tag -a v1.0.0 -m "최초 릴리스 버전"
보통 실제 프로젝트에서는 Annotated Tag를 더 많이 씁니다!
🛠️ Git 태그 기본 명령어
1. 태그 생성
# Lightweight
git tag v1.0.0
# Annotated
git tag -a v1.0.0 -m "최초 정식 릴리스"
2. 특정 커밋에 태그
git tag -a v1.1.0 abc1234 -m "v1.1.0 릴리스"
abc1234는 커밋 해시입니다.
3. 태그 목록 확인
git tag
4. 태그 상세 확인
git show v1.0.0
5. 태그 삭제
git tag -d v1.0.0
6. 원격 저장소에 태그 푸시
git push origin v1.0.0
7. 모든 태그 푸시
git push origin --tags
🧪 실전 예시: 버전 릴리스 태그 붙이기
- 프로젝트에서 main 브랜치가 안정 상태일 때
- 최신 커밋에 Annotated Tag 생성
- 버전명은 v1.0.0 등으로 부여
- GitHub에 푸시 후 릴리스 등록
git checkout main
git pull
git tag -a v1.0.0 -m "v1.0.0 정식 릴리스"
git push origin v1.0.0
이제 GitHub에서도 해당 버전을 쉽게 찾을 수 있습니다!
🌐 GitHub에서 태그로 릴리스 만들기
- GitHub 저장소 → Releases 탭 클릭
- “Draft a new release” 클릭
- 기존 태그 선택 or 새 태그 작성
- 릴리스 노트 작성
- Publish 버튼 클릭
이제 누구나 GitHub에서 버전별 소스코드 zip 다운로드가 가능해요! 정식 릴리스 관리가 훨씬 깔끔해집니다 🎉
⚠️ 태그 관련 주의사항
- ✔️ 태그를 되도록 자주 수정하지 마세요 (신뢰성 하락)
- ✔️ 동일한 버전명 중복 생성 금지
- ✔️ 태그를 잘못 푸시했을 경우 강제 삭제 및 재등록 필요
잘못된 태그 삭제 예시
# 로컬에서 삭제
git tag -d v1.0.0
# 원격에서 삭제
git push origin :refs/tags/v1.0.0
📌 태그 관리 베스트 프랙티스
- ✔️ 릴리스마다 Annotated Tag로 버전 명시
- ✔️ Semantic Versioning 활용 (v1.2.3 형식)
- ✔️ 태그 기준으로 changelog 및 릴리스 노트 관리
- ✔️ CI/CD 파이프라인에서 태그 기반 배포 트리거 사용
📌 오늘의 핵심 요약
- ✔️ Git 태그는 커밋에 이름표를 붙이는 기능
- ✔️ Annotated Tag는 릴리스용, Lightweight Tag는 임시용
- ✔️ GitHub 릴리스와 연계하면 릴리스 관리가 훨씬 쉬워져요
이제 프로젝트에 명확한 버전 히스토리를 남기고 싶다면 Git 태그를 꼭 활용해보세요 😊
📎 다음 회차 예고
18회차. 실무에서 자주 하는 Git 실수 TOP 5와 해결법
✔️ 잘못된 커밋, 잘못된 브랜치 삭제 ✔️ push 후 롤백 ✔️ force push의 위험성