Git에서 태그(Tag)를 만들고 관리하는 방법
Git에서 태그(Tag)를 만들고 관리하는 방법
Git 태그(Tag)는 특정 커밋을 참조하기 위해 사용하는 고유한 표시입니다. 주로 릴리즈 버전을 관리하거나 중요한 시점을 표시할 때 유용하게 사용됩니다. 이번 글에서는 Git에서 태그를 생성하고, 관리하며, 원격 저장소와 동기화하는 방법을 알아보겠습니다.
1. 태그의 종류
Git에서는 두 가지 유형의 태그를 사용할 수 있습니다:
- Annotated Tag (주석 태그): 태그와 함께 추가 정보를 저장하며, GPG 서명, 작성자, 날짜, 메시지를 포함할 수 있습니다.
- Lightweight Tag (경량 태그): 단순히 특정 커밋에 대한 포인터로, 추가 메타데이터가 없습니다.
2. 태그 생성하기
Annotated Tag 생성
주석이 포함된 태그를 생성하려면 다음 명령어를 사용합니다:
git tag -a <태그 이름> -m "태그 메시지"
예시:
git tag -a v1.0.0 -m "첫 번째 릴리즈"
위 명령은 v1.0.0
이라는 이름의 태그를 생성하고, “첫 번째 릴리즈”라는 메시지를 추가합니다.
Lightweight Tag 생성
경량 태그를 생성하려면 다음 명령어를 사용합니다:
git tag <태그 이름>
예시:
git tag v1.0.0
3. 태그 확인하기
저장소에 있는 태그 목록을 확인하려면 다음 명령어를 사용합니다:
git tag
특정 패턴의 태그를 필터링하려면:
git tag -l "v1.*"
위 명령은 v1.
으로 시작하는 모든 태그를 출력합니다.
4. 특정 커밋에 태그 추가하기
기본적으로 현재 커밋에 태그를 추가하지만, 특정 커밋에 태그를 추가할 수도 있습니다. 커밋 해시를 사용하여 태그를 추가하려면:
git tag -a <태그 이름> <커밋 해시> -m "태그 메시지"
예시:
git tag -a v1.0.0 abc123 -m "첫 번째 릴리즈"
5. 태그 삭제하기
로컬에서 태그를 삭제하려면 다음 명령어를 사용합니다:
git tag -d <태그 이름>
예시:
git tag -d v1.0.0
원격 저장소에서 태그를 삭제하려면 먼저 로컬에서 삭제한 뒤 원격에서도 삭제 명령을 실행해야 합니다:
git push origin --delete <태그 이름>
예시:
git push origin --delete v1.0.0
6. 태그를 원격 저장소로 푸시하기
로컬에서 생성한 태그를 원격 저장소로 푸시하려면 다음 명령어를 사용합니다:
git push origin <태그 이름>
모든 태그를 한 번에 푸시하려면:
git push origin --tags
7. 태그 참조하여 체크아웃하기
특정 태그의 커밋 상태로 작업하려면 다음 명령어를 사용하여 해당 태그를 체크아웃합니다:
git checkout <태그 이름>
체크아웃한 상태는 detached HEAD 상태가 되며, 새로운 커밋을 추가하려면 별도의 브랜치를 생성해야 합니다:
git switch -c <새 브랜치 이름>
8. 태그에 대한 추가 정보 확인하기
특정 태그에 대한 상세 정보를 보려면 다음 명령어를 사용합니다:
git show <태그 이름>
예시:
git show v1.0.0
9. 유용한 팁
태그 이름 규칙: 일관된 버전 관리 규칙(Semantic Versioning, 예:
v1.0.0
)을 사용하는 것이 좋습니다.GPG 서명 태그: 보안을 강화하기 위해 태그를 GPG로 서명할 수 있습니다:
git tag -s <태그 이름> -m "서명된 태그 메시지"
태그를 브랜치로 변환: 태그에서 브랜치를 생성하려면:
git switch -c <브랜치 이름> <태그 이름>
Git 태그를 효과적으로 활용하면 프로젝트의 특정 시점을 관리하고 추적하기 훨씬 쉬워집니다.