Git,  Programming

[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*

예를 들어 v1.0으로 시작하는 tag를 나열하고 싶은 경우 위와 같이 수행하면 된다.

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

  1. https://kotlinworld.com/296

Leave a Reply

Your email address will not be published. Required fields are marked *