[Git] Tag 추가, 변경, 삭제, 검색, 비교, Checkout, Push
Git을 사용할 때 versioning을 하기 위한 기능이 tag다. Tag는 HEAD처럼 특정 commit의 pointer 역할을 한다.
Tag 추가
Lightweight Tag
Lightweight tag는 간단하게 특정 commit을 위한 label만을 추가하는 것으로, 방법은 다음과 같다.
$ git tag [tag name]
Annotated Tag
Annotated tag는 lightweight tag에 추가 meta data 정보를 포함하는 tag다.
$ git tag -a [tag name]
위 명령을 수행하면 편집기가 열리고, 필요한 정보를 입력하라고 나온다. 만약 test로 annotated tag를 생성하고 다음 방식으로 확인이 가능하다.
$ git show [tag name]
$ git show v1.1 tag v1.1 Tagger: XXX Date: Thu Dec 29 18:21:09 2022 +0900 This is annotated tag comments It can be good habits commit 9f5cb5e6c4d842cb7126da4afe50668d46dfdd24 Author: XXX Date: Thu Dec 29 18:16:31 2022 +0900
특정 Commit에 Tag 생성
이미 commit된 곳에 tag를 달 경우, commit hash 값으로 tag를 생성 할 수 있다.
$ git tag [tag name] [commit hash]
참고로 commit hash 앞 7자리로 가능하다.
Tag Commit 변경
만약 tag의 commit을 변경하고 싶은 경우 다음과 같이 가능하다.
$ git tag [tag name] [new commit hash] -f
Tag 삭제
생성한 tag를 삭제하고 싶은 경우 다음 명령어로 수행이 가능하다. Tag를 삭제하더라도 commit은 남아있다.
$ git tag -d [tag name]
Tag 검색
우선 현재 존재하는 tag를 조회하는 것은 다음 명령어로 가능하다.
$ git tag
만약 tag가 많아 필터링을 하고 싶은 경우 아래와 같이 가능하다.
$ git tag -l [pattern]
$ git tag -l v1.0*
예를 들어
으로 시작하는 tag를 나열하고 싶은 경우 위와 같이 수행하면 된다.v1.0
Tag간 비교
$ git diff [tag1 name] [tag2 name]
Branch와 마찬가지로 위 방법으로 tag간 비교가 가능하다.
Tag Checkout
$ git checkout [tag name]
위 명령어로 원하는 tag로 checkout이 가능하다.
Tag Push to Remote
$ git push [remote] [tag name]
Branch와 마찬가지로 쉽게 remote롤 tag를 올릴 수 있다.
$ git push [remote] --tags
만약 모든 tag를 올리고 싶은 경우 --tags
옵션으로 수행이 가능하다.
Reference
- https://kotlinworld.com/296