Git | 태그와 릴리즈 (Tag & Release)

여경·2022년 12월 18일
2

GIT

목록 보기
1/6

github tag란?

  • 커밋을 한 시점 참조가 필요할 때 알기 쉽도록 이름을 붙이는 것
  • 한 번 붙인 태그는 브랜치처럼 위치가 이동하지 않고 고정

깃에서 각 커밋에 달 수 있는 꼬리표 같은 것으로서, 주로 릴리즈 버전을 표시하는데에 이용된다.
태그 여부와 이름에 따라 어떤 버전이 중요한 버전인지 확인할 수 있다.

Git의 태그 종류

lightweight : 이름만 붙이는 일반 태그
annotated : 주석 태그, 작성자 정보, 날짜, 메시지, GPG 서명 등을 포함할 수 있다.

Tag 생성 방법

3가지 방법
1. 깃 커맨드 라인
2. 깃허브 웹페이지 인터페이스
3. 소스트리

  1. 깃 커맨드 라인

git tag : 현재 등록된 태그의 목록 표시
git tag tag-name : 해당 태그 이름으로 현재 head에 태그 추가

위에서 말한 annotated 형태로 추가 설명을 넣고 싶다면? git tag tag-name -a
git pusg origin --tags 태그 전체를 리모트 저장소에 푸시하는 방법
git pusg origin tag-name 태그 하나만 리모트 저장소에 푸시하는 방법

  1. 깃허브 웹페이지
  • 릴리즈 클릭

  • Draft a new release

  1. 새로운 릴리즈를 생성하기 위해 모든 칸을 다 채우고, Publish release 버튼을 클릭
  2. 로컬 저장소에 가져와 확인하고 싶다면 git fetch로 로컬 저장소에 가져오기
  1. 소스트리...는 나중에 정리

github release란?

깃허브(Github)에는 릴리즈 기능이 있다. 깃허브를 통해 협업을 하는 소스코드의 결과물을 공유할 수 있는 기능이다.

깃허브의 오른 쪽 탭에 있는 'Release'라는 항목을 찾을 수 있다. 'Create a new release'를 클릭하여 새로운 릴리즈를 작성할 수 있다.

태그와 함께 릴리즈 제목, 노드, 그리고 소스코드를 빌드한 바이너리를 첨부할 수있다. 이걸 통해 배포를 한다지...

작성하는 내용

보통 버전명을 입력하고, 제목 및 내용을 작성, pre-release인지, 아닌지를 체크

  • Pre-release - 공식적 배포 이전 노출시키는 것, 게임 같은 경우 공식으로 릴리즈는 안했지만 사전 구매할 수있는 상태 가튼것,,,

왜 필요한가요?

태그와 릴리즈를 사용하면 소스의 버전 관리가 쉬워진다. 이를 하나의 배포전략으로 이용하여 특정시점으로 롤백하거나, 배포 버전을 생성하는 용도로 사용할 수 있다.

먼저 태그는 읽기전용 커밋이라고 생각하면 편하다. 커밋의 경우 내용을 수정할 수있으나 태그는 수정이 불가능하여 읽기전용 커밋같은 개념이고, 소프트웨어의 버전을 릴리즈할 때마다 사용한다고 보면 된다.

ex) 서비스가 1.0이 릴리즈 될 때 태그해두고 1.1버전을 개발하며 그사이에 만들어지는 브랜치드로가 커밋들이 존재하는데 이런 것들을 커밋으로 관리하다가 1.1버전이 완성되는 커밋에 태그를 하는 것.

태그들을 조회할 때는 태그들이 사전 순으로 정렬 된다. 그 때문에 태그명이 어떤 버전 정보인 것이다. 태그들을 조회하여 시간이나 진행 순서에 맞춰 출력가능하다(v1.1 , v1.2, v1.3 ...)

찾아보니 예시로, 협업을 할 때 " 어 지금 이거 안되는데?" 라고 누군가 이야기하면 " 그거 이 시점 쯤에서는 됐었는데... 제가 태그 걸어드릴게요" 라고 말하면서 사용하기도 한다고 한다...

개인적으로는 불안정한 작업 중일 때 망하면 돌아가기 위해 걸어두기도 한다. 작업하면서 커밋을 많이 했을 경우 차후 내가 어느 커밋으로 돌아가가야 하는지 헷갈릴 수있다. (내가 봤을 때 이게 바로 마일스톤,, 이정표 같은데 대체 깃허브는 이름을 왜 이딴식으로들 지은거임? 대체 ... )

릴리즈는,,,

말 그대로 배포를 해야하는 코드에 대한 정보들을 입력하고 파일들 업로드하고, 버튼을 클릭하면 릴리즈 되기 때문이다!

github 의 release 기능의 장점은 빌드된 배포판만 업로드하면 release 시점의 소스 코드는 github 에서 자동으로 압축하여서 release 에 포함시켜준다는 점.

0개의 댓글