Notice
suyeonme
[Git] Tag 명령어 정리 본문
태그(Tag)란?
태그란 커밋을 참조하기 쉽도록 이름을 붙이는 것으로, 즉 커밋을 태깅(tagging)하는 것이다. 주로 배포 브랜치(release branch)에서 서비스의 버전을 지정할 때 사용한다.
서비스의 버전이 1.0이라면 서비스 1.0을 릴리즈할 때 태깅을 한다. 그 이후 신규 기능은 커밋으로 관리를 하다가 서비스 1.1을 릴리즈할 때의 커밋에 태깅을 할 수 있다. 이런식으로 배포 브랜치를에 태그를 달아서 서비스의 버전을 명시하거나 문제가 생겼을 때 해당 부분을 롤백(rollback)하는등의 행위를 할 수 있다.
태그의 종류
- Lightweight Tag: 이름만 붙일 수 있는 태그(커밋번호가 곧 태그)로, 임시로 태그를 생성하거나 메타 데이터를 제공하고 싶지 않은 경우 사용한다.
- Annotated Tag: 커밋과 비슷하게 태그를 생성한 사람의 이름, 태깅날짜, 태그 메세지등 메타데이터를 저장할 수 있다. 일반적으로 Annotated 태그를 사용한다. ^{} 붙어있지 않은건 자체 태그번호이고 ^{} 붙어있는 것은 태그가 가리키는 커밋 번호이다.
태그 관련 명령어
- --dereference: 태그 객체가 가리키고 있는 커밋 ID를 함께 보여준다(포인터의 값 앞에 붙이는 * 연산자는 dereference operator로 해당 레퍼런스가 갖고 있는 내용을 가져온다). Annotated 태그는 태그의 메타데이터와 커밋 ID를 가지고 있다.
# 로컬 저장소의 태그 조회
git tag
# 원격 저장소의 태그 조회
git ls-remote --tags
# 조건에 맞는 태그 조회 (*사용)
git tag -l 'v1.9.5*'
git tag --list 'v1.9.5*'
# 커밋번호와 태그 조회
git show-ref --tags --dereference
# 태그 정보 조회
git show v1.90.0
# Annotated 태그 생성
git tag -a [TAG NAME] -m "TAG MESSAGE"
# Lightweight 태그 생성
git tag [TAG NAME]
# 로컬 저장소의 태그 삭제
git tag -d [TAG NAME]
# 원격 저장소의 태그 삭제
git push origin :[TAG NAME]
git push origin -d [TAG NAME]
# 원격 저장소에 태그 push
git push origin [TAG NAME]
# lightweight 태그 수정
git tag [NEW TAG NAME] [OLD TAG NAME]
# annotated 태그 수정
git tag -a [NEW TAG NAME] [OLD TAG NAME]^{} -m "NEW TAG MESSAGE"
'프로그래밍👩🏻💻 > Git' 카테고리의 다른 글
[Git] 모노레포 환경에서 Husky로 Git Hook 설정하기(Commit전 console.log 제거) (0) | 2024.05.16 |
---|---|
[Git] 모노레포 환경에서 Husky로 Git Hook 설정하기(commitlint) (0) | 2024.05.16 |
[Git] 모노레포 환경에서 Husky로 Git Hook 설정하기(lint-staged) (0) | 2024.05.06 |
[Git] 파일의 대소문자 변경시, 반영안되는 경우 해결하기 (0) | 2022.07.18 |
[Git] multi line으로 커밋 메세지 작성하기 (0) | 2022.07.02 |
Comments