0. Introduction
- 해당 내용은 제대로 파는 Git & GitHub - by 얄코 를 중심으로 Pro git : Second editions을 참고하여 공부한 내용입니다.
- 이번 단원에서는 Commit에 tage를 다는 것에 대해 알아본다.
9.1 Commit에 tag 달기
Commit에 tage를 다는 이유는 다음과 같다.
- 특정 시점을 키워드로 저장하고 싶을 때
- 커밋에 버전 정보를 붙이고자 할 때
Github repository에 들어가보면 tage를 발견할 수 있다.
- branch를 선택하는 곳 옆옆에를 보면 현재 시점 기준 225 tags 임을 알 수 있다.
- 이 tags를 클릭하면 다음 이미지를 볼 수 있다.
9.1 tag 규칙
tags를 입력할 때는 이 문서의 규칙 Semantic Versioning 정보을 따른다.
- 요약하자면 다음과 같다.
- 주.부.수 숫자로 버전을 명시한다.
- 주: 기존 버전과 호환되지 않게 API가 바뀌면 ‘주 버전’을 올린다.
- 부: 기존 버전과 호환되면서, 새로운 기능이 추가되면 ‘부 버전’을 올린다.
- 수: 기존 버전과 호환되면서, 버그를 수정한 것이라면 ‘수 버전’을 올린다.
9.2 tag 종류
tag 종류는 lightweight와 annotated로 나눠진다.
- lightweight: 단지 특정 커밋을 가리키는 용도
- annotated: 작성자 정보와 날짜, 메시지, GPG 서명 포함 가능
tag 종류 | lightweight tag | annotated tag |
---|---|---|
마지막 커밋에 tag 달기 | git tag v2.0.0 | git tag -a v2.0.0 |
|
|
- 또는 아래와 같이 메시지를 같이 입력한다.
|
|
- 그리고 tag 명령어 종류는 다음과 같다.
tag 명령어 종류 | 설명 |
---|---|
git tag | 현존하는 태그 확인 |
git show v2.0.0 | 원하는 태그의 내용 확인 |
git tag -d v2.0.0 | 태그를 삭제 |
|
|
- 원하는 방식으로 태그를 달거나, 필터링, checkout 할 수 있다.
tag 명령어 | 설명 |
---|---|
git tag (태그명) (커밋 해시) -m (메시지) | 원하는 커밋에 태그 달기 |
git tag -l ‘v1.*’ | 원하는 패턴으로 필터링하기 |
git checkout v1.2.1 | 원하는 버전으로 체크 아웃 |
|
|
9.2 원격의 태그 관리
특정 태그 원격에 올리기
git push (원격명) (태그명)
|
|
- 위 명령어를 입력한 후, GitHub 원격 저장소를 들어가면 tag의 수가 늘어난 걸 알 수 있다.
특정 태그 원격에서 삭제
git push —delete (원격명) (태그명)
|
|
- tag의 갯수가 다시 줄어든 걸 확인할 수 있다.
로컬의 모든 태그 원격에 올리기
git push —tags
- tag의 갯수가 다시 늘어난 걸 알 수 있다.
- tag 버전명을 따로 적지 않으면 모든 tag가 원격에 올라간다.
GitHub의 release 기능
GitHub의 올라간 tag들 중, 배포하는 버전인 배포버전들을 의미하는게 Releases 다.
이에 대해 보다 이해하기 위해서 네이버 나눔고딕 코딩글꼴 예시를 참고해보자.
- 17개의 tags가 있지만, Releases는 14개다. 즉, tags 중에서 배포버전을 정하는 것이다.
tags에 들어가서 원하는 태그의 오른쪽을 보면 점이 3개 있다. 이를 클릭하여
Create release
를 클릭한다.그러면 배포하기 원하는 title과 그 내용을 markdown 명령어로 입력한다.
Publish release
를 클릭하여 배포한다.