Git tag // Git(7)

2022. 2. 25. 20:16

Git tag

  • 특정 시점에 키워드를 저장하고 싶을 때
  • 보통은 version을 표시하기 위해 많이 사용함
  • 많이 쓰이는 방식으로는 semantic versioning이 이 있음(https://semver.org/lang/ko/)

 

1)종류

  • lightweight : 커밋에 그냥 태그만 붙임. 태그외의 정보는 X
  • annotated : 태그외에 이것저것 많이 함꼐 제공(작성 정보, 날짜, 메시지,gpg서명...)

 

2)태그달기

  • 따로 명시해주지 않으면 , 가장 마지막 파일에 lightweight 태그가 달림
#마지막 커밋에 , 'v2.0.0'이라는 lightweight태그가 달림
git tag v2.0.0

#현존 태그 확인
git tag

#원하는 태그의 내용 확인 >해당 태그의 커밋에서 어떤 변화가 있었는지 / 해쉬태그 등 여러정보를 제공
git show v2.0.0

#태그 삭제
git tag -d v2.0.0

 

  • annotated 태그를 달려면, '-a'를 추가하거나 '-m'을 추가하면 됨
  • '-a'를 추가하면, 메세지를 입력하라고 함. 커밋의 메세지처럼, 해당 태그에 대한 메세지를 입력해주면 됨
  • '-m'을 추가하면, 바로 위에서 말한 그 메세지를 바로 입력할 수 있는데, 이게 곧 '-a'를 추가하는 것과 같음(태그명 외에 다른 정보를 추가해줌 = annotated)
##annotated태그##
#마지막 커밋에, 'v2.0.0이라는 annotated 태그를 단다
git tag -a v2.0.0

#입력후 메세지 작성
git tag v2.0.0 -m '자진모리 버전'

#원하는 커밋에 태그 달기
git tag (태그명) (커밋 해시) -m (메시지)

 

3)유용한 기술

  • 원하는 패턴으로 필터링
  • *를 사용하면 모든 글자가 됨 >> v1.* = v1.으로 시작되는 모든 애들
#v1로 시작하는 tag만 보겟다!
git tag -l 'v1.*'

 

  • 원하는 버전으로 체크아웃
  • 참고로, 체크아웃 = 그 커밋으로 헤드를 옮겨서, 거기서 시작되는 임의의 브랜치로 이동
  • 즉 밑의 명령어에 따르면, v1.2.1태그가 달린 커밋에서 시작되는 임의의 브랜치로 이동함(여기서 만약 무언가를 수정해서 commit하면, 거기서 브랜치가 뻗어나옴)
git checkout v1.2.1

 

4)realease

  • 태그를 원격에 올릴 수 있음
  • 해당 태그의 커밋이 github에 push되어 있지 않다 하더라도 코드내용을 확인할 수는 있음
  • 다만 repo에 정식으로 등록은 안됨
#태그 원격에 올리기
git push (원격명) (태그명)

#태그 원격에서 삭제
git push --delete (원격명) (태그명)

#로컬의 모든 태그 원격에 올리기
git push --tags

 

  • github에서 태그된 커밋은 릴리즈가 가능함
  • github > 태그 목록 > 원하는 태그에서 create release > 제목,내용(마크다운)입력 > publish release
  • 사람들이 그냥 바로 가져다 쓸 수 있게 하는 것임

 

'개발도구 > git' 카테고리의 다른 글

git을 활용한 작업 flow  (0) 2022.05.06
Git submodules // Git(9)  (0) 2022.02.25
Git Head // Git(6)  (0) 2022.02.25
노션 이동 완료Git : GitHub // Git(5)  (0) 2022.02.25
Git : Branch // Git(4)  (0) 2022.02.25

BELATED ARTICLES

more