배포관리와 태그

버전

  • 메이저 버전 : 단일 숫자 하나로 이루어짐.
  • 마이너 번호 : 점으로 구분되는 두자리, 세자리 형태
  • 과 같이 세자리 형태로 표현하는 버전을 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 태그이름 : 원격저장소의태그이름
    

© 2024. Chiptune93 All rights reserved.