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

2022. 1. 10. 09:55· CI, CD/Git
목차
  1. Git Tag란?
  2. Git Tag 만들기
  3. Lightweight Tag 만들기
  4. Annotated Tag 만들기
  5. 특정 Commit에 태깅하기
  6. 기존 태그 특정 Commit에 으로 바꾸기
  7. Git Tag 삭제하기
  8. Git Tag 목록 조회하기
  9. Git Tag 필터링하기
  10. Git Tag간 차이 확인하기
  11. Git Tag로 checkout 하기
  12. Git Tag push 해 Remote 에 태깅하기
  13. 개별 Tag 푸시하기
  14. 모든 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
반응형
저작자표시 비영리 변경금지
  1. Git Tag란?
  2. Git Tag 만들기
  3. Lightweight Tag 만들기
  4. Annotated Tag 만들기
  5. 특정 Commit에 태깅하기
  6. 기존 태그 특정 Commit에 으로 바꾸기
  7. Git Tag 삭제하기
  8. Git Tag 목록 조회하기
  9. Git Tag 필터링하기
  10. Git Tag간 차이 확인하기
  11. Git Tag로 checkout 하기
  12. Git Tag push 해 Remote 에 태깅하기
  13. 개별 Tag 푸시하기
  14. 모든 Tag 푸시하기 


 

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

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

open.kakao.com

'CI, CD/Git' 카테고리의 다른 글
  • [Git] .git 폴더 내부의 refs 폴더에 대해 알아보자
  • [Git] git config 는 어떻게 동작하는가?
  • [Git] interactive rebase 사용해 이전에 생성된 커밋 조작하기 : commit 메세지 수정, commit 삭제, commit 합치기
  • [Git] git rebase 사용해 git commit history 다시 작성하기. 언제 git merge 또는 git rebase를 사용해야 하는가?
Dev.Cho
Dev.Cho
'조세영의 Kotlin World'는 Kotlin를 전문적으로 다루는 개인 기술 블로그입니다. Kotlin 세계에 대한 양질의 자료를 제공하며 Kotlin, Android, Spring, CI, CD 분야에 대해 다룹니다.
Dev.Cho
조세영의 Kotlin World
Dev.Cho
전체
오늘
어제

블로그 메뉴

  • LinkedIn
  • GitHub
  • 분류 전체보기 (491)
    • Kotlin (104)
      • Class and Interface (19)
      • Variable and Function (8)
      • Modifier (5)
      • Collection (14)
      • Time (8)
      • 동시성 제어 (7)
      • Reactive Programming (2)
      • Paradigm (2)
      • Kotlin 자료구조 (15)
      • Design Patterns (11)
      • Algorithm (3)
      • Exception (1)
      • 기타 (9)
      • Update History (0)
    • Coroutines (32)
      • Coroutine Basics (18)
      • Flow (9)
      • CoroutineScope (3)
      • Debugging (2)
    • Testing Codes (28)
      • Test 기본 (3)
      • JUnit5 (9)
      • MockK (6)
      • Testing Coroutines (1)
      • Testing Android (8)
      • Test 기타 (1)
    • Spring (50)
      • Dependency Injection (18)
      • Settings (5)
      • REST API (0)
      • DevTools (1)
      • MVC (18)
      • Error (2)
      • MongoDB (2)
      • Database (4)
    • Android (39)
      • Architecture (2)
      • Component (5)
      • Manifest (1)
      • Lifecycle (2)
      • Dependency Injection (17)
      • Resource (1)
      • Storage (1)
      • Security and Optimization (1)
      • WebView (2)
      • Error (6)
    • Android Jetpack Compose (33)
      • Compose (6)
      • Compose Modifier (13)
      • Compose Resource (4)
      • Compose State (4)
      • Compose Side Effect (6)
    • Android Jetpack Compose UI (48)
      • Compose Layout (14)
      • Compose Text (10)
      • Compose Button (5)
      • Compose Dialog (2)
      • Compose TextField (0)
      • Compose UIs (4)
      • Compose Animation (1)
      • Compose Canvas (12)
    • Android Jetpack (10)
      • Datastore (5)
      • ViewModel (4)
      • LiveData (1)
      • Paging (0)
    • KMP (5)
    • Programming (4)
    • Machine (9)
      • JVM (7)
      • Linux (2)
    • CI, CD (74)
      • Gradle (12)
      • Groovy Gradle (5)
      • Git (25)
      • Git Remote (5)
      • GitHub (5)
      • GitHub Actions (21)
    • Network (33)
      • GraphQL (12)
      • HTTP (11)
      • Basic (9)
    • 오픈소스 (3)
    • Database (3)
      • MongoDB (3)
    • IDE (6)
      • Android Studio (2)
      • Intellij (4)
    • Firebase (1)
    • Javascript (9)

공지사항

  • 코틀린 코루틴 완전 정복 강의 in 인프런 오픈
  • 코틀린 코루틴의 정석 책 출간
  • Kotlin Coroutines 공식 기술 문서 한국어 번⋯
  • GitHub에서 조세영의 Kotlin World를 Foll⋯
  • 문의&제안

인기 글

태그

  • Kotlin
  • github
  • Unit Testing
  • GIT
  • GraphQL
  • 유닛 테스팅
  • Class
  • 의존성 주입
  • HTTP
  • junit
  • flow
  • junit5
  • gradle
  • compose
  • Spring
  • github actions
  • 코틀린
  • dagger2
  • 안드로이드
  • kotlin spring
  • junit4
  • java
  • Android Compose
  • Jetpack Compose
  • Android
  • Dependency Injection
  • 코루틴
  • Coroutine
  • Spring boot
  • 스프링

최근 글

반응형
hELLO · Designed By 정상우.v4.3.0
Dev.Cho
[Git] Tag를 활용한 Git Version 만들기 : git tag 추가, 삭제, 검색, 푸시 한 번에 정리하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.