git 히스토리 관리 -Tag

Weed·2024년 2월 18일
0

Git - Tag

  • Tag: 특정항 커밋을 찾아내기 위해 사용 (책갈피)
    일반적으로 태그는 전환점이 되는 커밋, 브랜치로 분기할 때, 버전업이 될 때 등 의미 있는 사건이 발생 시 태그
  • 모든 태그 목록 보기
$ git tag
  • 태그가 적용된 커밋의 상세 정보 보기
git show <tag-name>
  • 태그 이름은 문자열로 정렬이 된다. 태그 설정 시간, 커밋 순이라던지 등 시간순으로 정렬이 되는것이 아니기 때문에 추후 태그 목록 확인 시 쉽게 알기 위해 태그 이름을 잘 정하는 것이 필요

  • Ref 참조

$ git show-ref --tags

tag가 된 ref들의 해시 키를 참조

Git - Lightweight Tag

  • Lightweight Tag (임시로 사용)
    - Lightweight Tag는 브랜치와 비슷하며 브랜치처럼 가리키는 포인터를 최신 커밋으로 이동시키지 않음
    - 단순히 특정 커밋에 대한 포인터
    - Lightweight Tag는 기본적으로 파일에 커밋 체크섬을 저장하는 것 뿐
  • 태그 등록
$ git tag patch-12345



git Tag하면 최신 커밋 위치에 태그 설정

  • 태그 정보 확인
git show patch-12345
  • 나중에 태그 하기
$ git tag <태그 이름> <커밋 해시>
$ git tag patch-54321 abcdefg  

git log --oneline

커밋 메시지 [initialize] azalea.txt 시점에 태그
git tag

git show azalea

Git - Annoatated Tag

  • Annotated Tag
    • Annotated Tag는 태그를 만든 사람의 이름, 이메일, 태그를 만든 날짜, 태그 메시지 저장
    • GPG (GNU Privacy Guard)로 서명 가능
  • 태그 등록
$ git tag -a <tag name> -m "message"
$ git tag -a version-1.0 -m "version 1.0"


git tag하면

git log --oneline하면

git show version-1.0하면

  • 나중에 태그하기
$ git tag -a <tag name> <커밋 해시> -m "message"
$ git tag -a version-0.1 a860054 -m "version 0.1"

Git - 태그 공유하기

  • 태그 공유하기
    • 태그는 자동으로 리모트 서버에 전송되지 않음
    • 별도로 서버에 Push해야 함
  • 태그를 원격 서버에 전송
$ git push origin [태그 이름]
$ git push origin version-1.0
  • 모든 태그를 원격 서버에 전송
$ git push origin --tags

Git - 태그 체크아웃

  • 태그를 체크아웃
    • 태그가 가리키는 특정 커밋 기반의 새로운 브랜치를 만들어 작업
$ git checkout -b [브랜치 이름] [태그 이름]
$ git checkout -b release-1.0 version-1.0

azalea.txt를 다시 태그 후, git log --oneline하면,

azalea 태그 시점에서 체크아웃해보자.

azalea 태그 시점으로 체크아웃 완료

hello 폴더 안에 리스트를 확인해보면 hello1.txt가 없는 것을 알 수 있다. hello1.txt 파일이 생성 전이므로

Git - 태그 삭제

$ git tag -d [태그 이름]


git tag

Git - 태그 이름 변경

$ git tag [바꿀 이름] [원래 이름]


azalea 태그를 version-0.5로 변경해보자

azalea 태그는 지워주면 된다.

profile
개발자로 전직해보자

0개의 댓글