Git에서 태그(Tag)를 만들고 관리하는 방법

Git에서 태그(Tag)를 만들고 관리하는 방법

Git
Git에서 태그(Tag)를 만들고 관리하는 방법
Author

gabriel yang

Published

December 19, 2024


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 태그를 효과적으로 활용하면 프로젝트의 특정 시점을 관리하고 추적하기 훨씬 쉬워집니다.