[Git Tip] Git Tag 붙이기
Git의 브랜치 전략 중 Git-flow에 대해 포스팅하기 이전에, 각 master
브랜치 커밋에 버전 태그를 붙이기
위한 Git Tag 관련 명령어에 대해 간단히 살펴보도록 하겠습니다.
1. Tag 생성 및 삭제
Git 태그에는 Lightweight
태그와 Annotated
태그가 있습니다. 태그명은 보통 버전명을 붙여 사용합니다.
Lightweight
태그는 간단히 지정한 커밋을 가리키는 포인터 같은 개념으로 태그명만 지정할 수 있습니다.
git tag 태그명
git tag 태그명 커밋ID
tag
를 지정할 때 태그이름 뒤에 커밋 ID(체크섬, checksum
)을 명시하지 않으면 현재 HEAD
가 가리키는
최신 커밋에 태그가 붙게 됩니다. checksum
은 축약된 6~7자리만 붙여도 됩니다.
Annotated
태그는 태그 작성자, 이메일, 작성날짜, 메시지(옵션)까지 붙여 저장 가능한 태그 객체입니다.
태그를 붙이는 방법은 Lightweigth
태그 방식에 -a
옵션만 붙여주면 됩니다.
git tag -a 태그명 [커밋체크섬]
git tag -a 태그명 -m "태그메시지" [커밋체크섬]
-m
옵션으로 commit
처럼 Annotated
태그에 메시지를 붙일 수 있습니다.
GPG(GNU Privacy Guard) 서명도 가능합니다. -s
옵션으로 서명할 수 있습니다.
(GPG 서명에 대해서는 추후 사용하보게 되면 추가 수정하겠습니다…;;)
git tag -s 태그명 -m "태그메시지"
로컬의 태그를 삭제하는 방법은 간단합니다. 태그명과 함께-d
나 --delete
옵션을 사용하시면 됩니다.
git tag -d 태그명
2. Tag 조회하기
우선 로컬 프로젝트에 어떤 태그가 있는지 확인하기 위해서는 다음처럼 리스트를 조회할 수 있습니다.
git tag
git tag -l "태그명"
-l
혹은 --list
옵션으로 태그명 기준의 검색 조건을 줄 수 있습니다. 태그명에는 예를 들어 “v1.0*“처럼
*
로 와일드카드를 붙여 유연한 처리를 할 수 있습니다.
또한 각 태그명에 대한 상세 정보를 확인할 경우 다음 명령어를 사용하시면 됩니다.
git show 태그명
3. 원격저장소 Tag 공유
기본적으로 Git에서 push
는 자동으로 태그를 원격저장소 서버에 전송하지 않습니다. 따라서 아래와 같이
별도로 태그를 push
해줘야 합니다.
git push 저장소명 태그명
git push 저장소명 --tags
태그명 대신 --tags
옵션을 주면 로컬의 모든 태그를 push
할 수 있습니다.
참고로 push
할 때 태그 정보 전송이 자동으로 되지 않는 것일뿐, pull
과 clone
으로 데이터를 받을 때는
자동으로 원격저장소의 tag
도 같이 받아집니다.
마지막으로 원격저장소의 태그리스트 조회와 태그 삭제 명령은 다음과 같습니다.
원격저장소 태그 리스트 조회
git ls-remote --tags
원격저장소 태그 삭제
git push -d 태그명
언제나 읽어주셔서 감사합니다.^^
개인 공부용 블로그입니다.
잘못된 부분에 언제든지 댓글이나 메일로 지적해주시면 감사하겠습니다.
Leave a comment