배포관리와 태그
버전
- 메이저 버전 : 단일 숫자 하나로 이루어짐.
- 마이너 번호 : 점으로 구분되는 두자리, 세자리 형태
- 과 같이 세자리 형태로 표현하는 버전을 SemVer(Semantic Versioning) 방식이라고 함.
버전 용어
- RC(Release Candidate) : 정식버전이 아닌 베타버전을 의미. 임시제품
- GA(General Availability) : 테스트가 완료된 정식 릴리즈 버전
- M(milestone) : 테스트 버전을 의미.
태그
특정 커밋의 해시 값을 가리키는 꼬리표
- Annotated : 태그 이름 + 정보 포함
- Lightweight : 태그 이름만 포함
태그 목록
태그 목록 조회
$ git tag $ git tag [-l|-list] // 리스트 조회 옵션
Annotated 태그
태그 생성
$ git tag -a 버전 // 현재 커밋에 대해 태그를 생성한다.
- 간단한 메세지
Annotated 태그를 생성할 때는 메세지를 작성해야 함.
$ git tag -a -m "simple tag 1.1.0"
- 태그는 중복해서 생성할 수 없다.
- 깃에 등록된 태그 이름은 유일해야 한다.
- 태그 삭제
태그 목록에서 삭제된 태그 이름은 이후에 다시 사용할 수 있다.
$ git tag -d 태그이름
태그의 상세 정보 확인
$ git show 태그 이름
Lightweight 태그
- 체크섬
Lightweight 태그 방식은 커밋의 체크섬만 가지고 있다.
$ git tag 태그이름 // Annotated 와는 다르게 옵션을 사용할 수 없다.
태그의 상세 정보 확인
$ git show 태그이름
특정 커밋 태그
태그 명령어는 기본적으로 HEAD가 가리키고 있는 커밋을 기준으로 태그를 생성한다.
직접 태그를 지정하려면 아래와 같이 입력한다.
$ git tag -a 태그버전 커밋ID
지정된 커밋 해시 값을 기준으로 새로운 태그를 생성한다.
- 커밋 로그 확인
$ git log --oneline
태그를 사용한 체크아웃
체크아웃 할 때 브랜치 이름 대신 태그 이름을 입력하면 된다.
$ git checkout 태그이름
- 태그 브랜치
추가 커밋 작업이 필요하다면 태그를 기반으로 새 브랜치를 생성할 수 있다.
$ git checkout -b 브랜치이름 태그이름
태그 공유
원격 저장소로 커밋을 전송할 때는 태그 정보는 자동으로 제외되니, 별도로 전송해야 한다.
$ git push 태그이름
- 태그를 전송하게 되면 깃헙의 ‘Release’ 탭에 표시된다.
- 사용자는 해당 탭에서 특정 태그가 가리키는 최종 소스를 받을 수 있다.
- 전체 태그 동기화
--tags
옵션을 사용하여 로컬 저장소의 모든 태그를 한꺼번에 원격 저장소로 보낼 수 있다.$ git push origin --tags
- 원격 저장소의 태그 수정과 삭제
- 깃허브에서 태그를 수정할 수 있다.
원격 저장소로 공유된 태그를 삭제할 때는 push 명령어를 사용해야 한다.
$ git push --delete 서버이름 태그이름
원격 저장소에 로컬과 다른 이름으로 태그 전송
$ git push origin 태그이름 : 원격저장소의태그이름