Tag(태그)

Violet_Evgadn·2023년 9월 7일
0

Git

목록 보기
18/33

Tag

버전

프로그램을 출시하거나 업그레이드하면 이에 해당하는 "버전"을 같이 명시한다.
Git에서도 코드 수정 과정 중 의미 있는 특정 시점에 숫자를 활용하여 버전을 명시할 수 있다.

그리고 Git에서는 주로 "태그"라는 기능을 활용하여 버전을 명시한다.

태그를 알기 전 태그의 일반적인 Naming Rule부터 알아보자.
(모든 Naming Rule이 그렇듯 필수사항은 아니고 대부분 이런 방식으로 이름 짓는다 정도의 선택 사항이라는 것을 알아두자)

[메이저 버전].[마이너 버전].[메인터넌스 버전]

  • 메이저 : 사용자가 크게 느낄 변화를 변경
  • 마이너 : 작은 기능적 변화가 있을 때 변경
  • 메인터넌스 : 버그나 유지 보수를 수행한 후 변경

Tag란?

Tag의 사전적 의미는 "어떠한 항목을 보충 설명하는 낱말 혹은 키워드"이다.
이런 의미를 보았을 때 Git Tag는 "커밋에 대한 보충 설명을 해주는 낱말 혹은 키워드"라고 할 수 있다.

조금 쉽게 비유해 보자면 Git Tag는 특정 커밋에 포스트잇을 붙이는 느낌이다.

Commit 시 태그에 버전을 달아주거나 주요 커밋에 대해서 태그를 달아준다면 다른 협업자들은 태그를 통해 중요 커밋을 확인하거나 버전을 통해 소스 코드 검색을 조금 더 쉽게 할 수 있을 것이다.

하지만 개인적으로는 Git Tag를 사용해 본 경험이 많이 없어서 실제로 유용하게 활용되는 개념인지 잘 모르겠다.
그냥 이런 것이 있다 정도로만 알고 넘어가자.

Tag의 종류

Git의 태그에는 "Lightweight 태그"와 "Annotated 태그"로 나뉜다.

Lightweight 태그는 특정 커밋에 대한 포인터의 역할로 단순히 태그에 이름만 달 수 있다.

Annotated 태그는 태그 이름뿐만 아니라 태그 생성자 정보, 태그 생성 날짜 및 주석까지 추가할 수 있다.

대부분의 경우 Annotated 태그로 만들어 해당 커밋의 자세한 정보를 알려주는 것이 좋지만 단순히 Tag로 커밋의 버전만 입력할 것이라면 Ligthweight 태그를 추천한다.


CLI를 통한 태그

IntelliJ에서도 git tag를 활용할 수 있지만 그렇게까지 많이 활용하는 기능은 아니므로 CLI를 통한 태그 활용법만 기록하겠다.

Git Tag

git tag [Option] <Tag Name> [branch or Checksum]

브랜치 혹은 Checksum 입력을 생략할 경우 현재 HEAD가 가리키고 있는 커밋에 태그가 추가된다.

Option & 사용법

  • git tag : 현재 커밋에 달린 Git Tag를 알려줌

  • git tag <Tag Name> : Lightweight 태그 생성

  • git tag -a <Tag Name> -m <Tag Message> : Annotated Tag 생성

    • Tag Name : 태그 제목, Tag Message : 태그에 대한 주석(설명)
  • git tag <Tag Name> [Branch명] : 지정한 Branch의 최신 커밋에 태그 추가

  • git tag <Tag name> [Checksum] : 지정한 체크섬을 가진 커밋에 태그 추가

    • Branch명에 태그를 달기보다는 Checksum을 활용해 태그를 다는 경우가 더 많다.

Tag 원격 저장소에 업로드

git push <원격 저장소 이름> --tags

--tags 옵션을 활용하면 로컬 저장소에 등록된 모든 태그가 원격 저장소에 업로드된다.

git push <원격 저장소 이름> <태그 이름>을 통해 태그를 1개씩 원격 저장소에 업로드할 수도 있긴 하지만 이 경우 업로드할 태그 이름을 외워놔야 하기 때문에 웬만하면 --tags 옵션 사용을 추천한다.

profile
혹시 틀린 내용이 있다면 언제든 말씀해주세요!

0개의 댓글