Image
CI\CD/Git

[Git] Tag를 활용한 Git Version 만들기 : git tag 추가, 삭제, 검색, 푸시 한 번에 정리하기

Git Tag란?

Git Tag란 버저닝을 위해 사용하는 포인터이다. HEAD가 특정 커밋 해시를 가리키는 것 같이 Git Tag 또한 특정 커밋 해시를 가리킨다.

 

*만약 HEAD에 대해 익숙하지 않으면 아래 글을 살펴보자.

 

[Git] .git 내부에서 HEAD를 인식하는 방법

.git 내부에서 HEAD를 인식하는 방법 .git 내부에는 HEAD파일이 있다. 이 파일은 HEAD를 인식하기 위한 메타 데이터를 저장하는 파일이다. 작업 중인 브랜치에 따라 변하는 HEAD파일 HEAD 파일은 현재

kotlinworld.com

 

이번 글에서는 다음의 순서로 Git Tag에 대해 다룰 것이다.

 

  • Git Tag 만들기
  • Git Tag 목록 조회하기
  • Git Tag 필터링하기
  • Git Tag간 차이 확인하기
  • Git Tag로 checkout 하기

 


Git Tag 만들기

Lightweight Tag 만들기

Lightweight Tag는 간단히 특정 커밋을 가리키는 Tag이다. Lightweight Tag는 git tag [tag name] 명령어로 만들 수 있다. git tag 명령어로 tag를 만들면 현재 HEAD 커밋에 태그가 붙는다.

$ git tag [tag name]

 

git tag를 만들면 다음과 같이 log에 tag에 관한 정보가 붙는다.

$ git tag v1.0.0
$ git log --oneline 

03f38ba (HEAD -> main, tag: v1.0.0) cc
4b2a415 (origin-ssh/main) git page demo

 

 

Annotated Tag 만들기

Annotated Tag는 Lightweight Tag에 메타데이타(추가 정보)를 포함한 태그이다. git tag -a [tag name] 을 통해 만들 수 있다.

$ git tag -a [tag name]

 

만약 위와 같이 명령어를 치면 추가적인 정보를 태그에 입력하라는 편집기가 나타나고 편집 후 종료하면된다.

➜  demo-page git:(main) git tag -a v1.0.1
힌트: 편집기가 파일을 닫기를 기다리는 중입니다... 

#
# 다음 태그에 대한 메시지를 쓰십시오:
#   v1.0.1
# '#' 문자로 시작하는 줄은 무시됩니다.

version 1.0.1 fix duplicate bug

 

그러면 git show 명령어를 통해 해당 태그를 확인했을 때 작성한 메세지가 나타나게 된다.

$ git show v1.0.1

tag v1.0.1
Tagger: Seyoung Cho <simplistudiodev@gmail.com>
Date:   Mon Jan 10 01:04:57 2022 +0900

version 1.0.1 fix duplicate bug

 

 

특정 Commit에 태깅하기

특정 Commit에 태깅 하기 위해서는 git tag [tag name] [commit hash] 명령어를 쓰면 된다.

$ git tag [tag name] [commit hash]

 

예를 들어 다음과 같이 쓸 수 있다.

$ git tag v1.0.2 6e0ab81

 

기존 태그 특정 Commit에 으로 바꾸기

기존 Tag 가 포인팅하는 Commit Hash를 바꾸려면 다음 명령어를 쓰면된다.

$ git tag [tag name] [commit hash] -f

 

예를 들어 다음과 같이 쓸 수 있다.

$ git tag v1.0.2 ae084ef -f

 


Git Tag 삭제하기

git tag -d [tag name] 명령어를 사용해 Tag를 삭제할 수 있다.

$ git tag -d [tag name]

 

예를들어 v1.0.1 tag를 삭제하려면 다음과 같이 쓰면 된다.

$ git tag -d v1.0.1
'v1.0.1' 태그 삭제함 (과거 98c4459)

 


Git Tag 목록 조회하기

git tag 명령어를 이용해 tag 목록을 확인할 수 있다.

$ git tag

 

 


Git Tag 필터링하기

git tag -l [pattern] 명령어를 이용해 뒤에 패턴을 만족하는 모든 태그를 출력할 수 있다.

$ git tag -l [pattern]

 

예를 들어 다음과 같이 출력하면 feature을 접두어로 갖는 모든 태그들이 출력된다.

$ git tag -l "feature*"

 

만약 feature 을 포함하는 문자열을 검색하려면 다음과 같이 쓰면 된다.

$ git tag -l "*feature*"

 

 


Git Tag간 차이 확인하기

git diff 명령어를 사용하면 Tag간 차이를 확인할 수 있다.

$ git diff [tag name1] [tag name2]

 

 


Git Tag로 checkout 하기

git checkout [tag name] 명령어를 이용해 tag가 가리키는 커밋을 체크아웃 할 수 있다.

$ git checkout [tag name]

 

예를 들어 다음과 같이 사용 가능하다.

$ git checkout v1.0.0

 


Git Tag push 해 Remote 에 태깅하기

개별 Tag 푸시하기

기존 git push를 사용해 Tag를 push 할 수 있다.

git push [alias] [tag name]

 

예를 들어 다음과 같이 쓸 수 있다.

git push origin v1.0.1

 

모든 Tag 푸시하기 

모든 Tag를 푸시하기 위해서는 다음 명령어를 사용하면 된다.

git push [alias] --tags
반응형

 

이 글의 저작권은 '조세영의 Kotlin World' 에 있습니다. 글, 이미지 무단 재배포 및 변경을 금지합니다.

 

 

Kotlin, Android, Spring 사용자 오픈 카톡

오셔서 궁금한 점을 질문해보세요!
비밀번호 : kotlin22

open.kakao.com