Skip to content

Git:Tag

프로젝트 진행 상의 중요한 지점에 태그를 붙일 수 있습니다. 일반적으로 이 기능은 버전 1.0과 같이 S/W 릴리즈 지점을 지정하기 위해 사용 합니다.

태그의 종류

Git의 태그는 Lightweight 태그와 Annotated 태그로 두 종류가 있다.

  • Lightweight 태그는 브랜치와 비슷한데 브랜치처럼 가리키는 지점을 최신 커밋으로 이동시키지 않는다. 단순히 특정 커밋에 대한 포인터일 뿐이다.
    그냥 다른 정보를 저장하지 않는 단순한 태그가 필요하다면 Lightweight 태그를 사용하는 것이 좋다.
  • Annotated 태그는 Git 데이터베이스에 태그를 만든 사람의 이름, 이메일과 태그를 만든 날짜, 그리고 태그 메시지도 저장한다. 또 GPG(GNU Privacy Guard)로 서명할 수도 있다.
    이 모든 정보를 저장해둬야 할 때에만 Annotated 태그를 추천한다.

Annotated

Annotated 태그를 만드는 방법은 간단하다. tag 명령을 실행할 때 -a옵션을 추가한다:

$ git tag -a v1.4 -m 'my version 1.4'

Lightweight

Lightweight 태그는 기본적으로 파일에 커밋 체크섬을 저장하는 것뿐이다. 다른 정보는 저장하지 않는다. Lightweight 태그를 만들 때에는 -a, -s, -m 옵션을 사용하지 않는다:

$ git tag v1.4-lw

태그의 공유

  • git push [원격저장소명] [태그명]
  • git push [원격저장소명] [로컬브랜치명] --tags

기본적으로 git push 명령은 태그를 원격 저장소에 보내지 않습니다. 태그를 만들면 태그를 원격 서버에 푸쉬 하라고 명시할 필요가 있습니다. 그 방법은 원격 브랜치를 공유할 때와 비슷 합니다. 다음과 같이 git push origin [tagname]명령을 실행 합니다.

$ git push origin v1.5

푸쉬를 할때 git push origin master에서 orgin master가 기본값이므로 생략해서 git push하듯이 origin 원격저장소에 master 브랜치에 대한 모든 태그를 푸쉬하려면 git push --tags를 사용해서 모든 태그를 푸쉬할 수 있습니다.

Favorite site