본문 바로가기
  • Hello_
Git

[Git] Git tag 설정하기

by LDwDL 2023. 1. 10.
728x90
반응형

본 포스팅에서는 git tag 설정과 tag를 기준으로 clone 하는 법에 대해 얘기하겠다.

 

Git tag

Git 태그는 Git 저장소에서 특정 커밋을 표시하는 방법이며, 프로젝트 개발의 중요한 지점을 표시하는 데 사용된다. 

또한 버그가 발생해서 기능을 되돌려야 할 경우 특정 버전으로 쉽게 롤백할 수 있으며 태그를 통해 협업도 용이하게 한다.

시간이 없는 분들은 명령어 정리한 것만 보셔도 된다.

tag 생성 git tag "태그명"
tag 생성 (특정 commit) git tag "태그명" "해시"
tag 찾기 git tag -l "패턴"
tag 비교 git diff "태그명_1" "태그명_2"
tag 삭제 git tag -d "태그명"
tag 푸시 git push origin "태그명"
tag 클론 git clone -b "태그명" "원격저장소url"

 

tag 생성

git tag는 간단하게 "git tag 태그명"으로 설정하면 된다. default는 가장 최신의 log에 tag가 달린다.

 

git tag v1.0.0

git log --oneline

"""
8ec3e9e (HEAD -> master, tag: v1.0.0, origin/master) fix : Change test to test2
0c4099c test: upload new file
610b82a Add initial readme
"""

 

특정 commit tag 설정

특정 commit에 tag 설정하는 법은 commit 해시를 위 명령어의 마지막에 입력하면 된다.

"git tag 태그명 커밋해시"

 

git tag v0.9.9 0c4099c

git log --oneline   

"""
8ec3e9e (HEAD -> master, tag: v1.0.0, origin/master) fix : Change test to test2
0c4099c (tag: v0.9.9) test: upload new file
610b82a Add initial readme
"""

 

tag 찾기

tag를 찾는 법은 "git tag -l 패턴"이다.

 

git log --oneline

"""
8ec3e9e (HEAD -> master, tag: v1.0.0, origin/master) fix : Change test to test2
0c4099c (tag: v0.9.9) test: upload new file
610b82a (tag: v0.9.8) Add initial readme
"""

git tag -l v* # 맨 앞에 v를 포함한 tag를 모두 찾기

"""
v0.9.8
v0.9.9
v1.0.0
"""

git tag -l *9* # 중간에 9를 포함한 tag를 모두 찾기

"""
v0.9.8
v0.9.9
"""

 

tag를 통해 commit 비교

"git diff 태그명_1 태그명_2"을 통해 각 커밋의 태그명을 입력해주면 두 커밋을 비교해 준다.

 

git diff v0.9.9 v1.0.0 

"""
diff --git a/test b/test2
similarity index 100%
rename from test
rename to test2
"""

 

tag 삭제

tag 삭제는 "git tag -d 태그명"이다.

 

git tag -d v0.9.9
# Deleted tag 'v0.9.9' (was 0c4099c)

git log --oneline

"""
8ec3e9e (HEAD -> master, tag: v1.0.0, origin/master) fix : Change test to test2
0c4099c test: upload new file
610b82a Add initial readme
"""

 

tag 푸시

tag를 푸시하여 원격저장소 커밋에 태깅해 보자.

"git push origin 태그명"

 

git push origin v1.0.0 

"""
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/watertiger5/test_repo.git
 * [new tag]         v1.0.0 -> v1.0.0
 """

 

 

tag 클론

특정 tag의 커밋을 clone 해보자.

"git clone -b 태그명 원격저장소url"

 

git clone -b v1.0.0 https://github.com/watertiger5/test_repo.git

"""
Cloning into 'test_repo'...
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 8 (delta 0), reused 8 (delta 0), pack-reused 0
Receiving objects: 100% (8/8), done.
Note: switching to '8ec3e9ecee26034f3273f5c535b1caa01195d206'.
"""

 

 

위 예시들과 같이 tag를 사용하면 알아보기 힘든 커밋 해시를 사용하지 않고도 중요한 커밋 변곡점을 손쉽게 알아보거나 가져올 수 있다.

 

 

728x90
반응형

댓글