깃에서 각 커밋에 달 수 있는 꼬리표 같은 것으로서, 주로 릴리즈 버전을 표시하는데에 이용된다.
태그 여부와 이름에 따라 어떤 버전이 중요한 버전인지 확인할 수 있다.
lightweight : 이름만 붙이는 일반 태그
annotated : 주석 태그, 작성자 정보, 날짜, 메시지, GPG 서명 등을 포함할 수 있다.
3가지 방법
1. 깃 커맨드 라인
2. 깃허브 웹페이지 인터페이스
3. 소스트리
git tag
: 현재 등록된 태그의 목록 표시
git tag tag-name
: 해당 태그 이름으로 현재 head에 태그 추가
위에서 말한 annotated 형태로 추가 설명을 넣고 싶다면? git tag tag-name -a
git pusg origin --tags
태그 전체를 리모트 저장소에 푸시하는 방법
git pusg origin tag-name
태그 하나만 리모트 저장소에 푸시하는 방법
git fetch
로 로컬 저장소에 가져오기깃허브(Github)에는 릴리즈 기능이 있다. 깃허브를 통해 협업을 하는 소스코드의 결과물을 공유할 수 있는 기능이다.
깃허브의 오른 쪽 탭에 있는 'Release'라는 항목을 찾을 수 있다. 'Create a new release'를 클릭하여 새로운 릴리즈를 작성할 수 있다.
태그와 함께 릴리즈 제목, 노드, 그리고 소스코드를 빌드한 바이너리를 첨부할 수있다. 이걸 통해 배포를 한다지...
보통 버전명을 입력하고, 제목 및 내용을 작성, pre-release인지, 아닌지를 체크
태그와 릴리즈를 사용하면 소스의 버전 관리가 쉬워진다. 이를 하나의 배포전략으로 이용하여 특정시점으로 롤백하거나, 배포 버전을 생성하는 용도로 사용할 수 있다.
먼저 태그는 읽기전용 커밋이라고 생각하면 편하다. 커밋의 경우 내용을 수정할 수있으나 태그는 수정이 불가능하여 읽기전용 커밋같은 개념이고, 소프트웨어의 버전을 릴리즈할 때마다 사용한다고 보면 된다.
ex) 서비스가 1.0이 릴리즈 될 때 태그해두고 1.1버전을 개발하며 그사이에 만들어지는 브랜치드로가 커밋들이 존재하는데 이런 것들을 커밋으로 관리하다가 1.1버전이 완성되는 커밋에 태그를 하는 것.
태그들을 조회할 때는 태그들이 사전 순으로 정렬 된다. 그 때문에 태그명이 어떤 버전 정보인 것이다. 태그들을 조회하여 시간이나 진행 순서에 맞춰 출력가능하다(v1.1 , v1.2, v1.3 ...)
찾아보니 예시로, 협업을 할 때 " 어 지금 이거 안되는데?" 라고 누군가 이야기하면 " 그거 이 시점 쯤에서는 됐었는데... 제가 태그 걸어드릴게요" 라고 말하면서 사용하기도 한다고 한다...
개인적으로는 불안정한 작업 중일 때 망하면 돌아가기 위해 걸어두기도 한다. 작업하면서 커밋을 많이 했을 경우 차후 내가 어느 커밋으로 돌아가가야 하는지 헷갈릴 수있다. (내가 봤을 때 이게 바로 마일스톤,, 이정표 같은데 대체 깃허브는 이름을 왜 이딴식으로들 지은거임? 대체 ... )
릴리즈는,,,
말 그대로 배포를 해야하는 코드에 대한 정보들을 입력하고 파일들 업로드하고, 버튼을 클릭하면 릴리즈 되기 때문이다!
github 의 release 기능의 장점은 빌드된 배포판만 업로드하면 release 시점의 소스 코드는 github 에서 자동으로 압축하여서 release 에 포함시켜준다는 점.
잘보고가융