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 |