#34 Git - Tag

김현준·2022년 12월 28일
0

GIT

목록 보기
34/41
post-custom-banner

이번시간에는 tag 에 대해 알아보겠습니다. 이는 branch 와 조금 비슷하지만 살짝 다릅니다.

git/git

저기 들어가보면 Release 라는 문구가 있습니다.
이는 git 이 만들고 있는 소스코드에서 사용자들에게 제공할 수 있는 각각의 의미있는 버전들을 모아놓은 곳입니다. 즉 정식으로 오픈된 버전을 다운로드하는 기능입니다.

875 tags 라는 숫자를 보면 다양한 버전이 있습니디. v2.39.0 이라는 commitc48035d 이라는 id 를 가지고 있습니다.

중요한 것은 이 commit 들은 고정되어있어야합니다.

하지만 branch 에서 master 라는 최신 commit 은 고정되어서는 안됩니다. 변화를 하면서 새로운 버전을 만들기 때문이죠.

branchtag 처럼 commit id 를 같이 가르키지만
tag 는 언제나 똑같은 commit id 를 가르키고 branchcommit id 가 항상 변화합니다.

git init tag 를 통해 새로운 저장소를 만들어 줍니다. 이후 f1.txt 를 만들고 addcommit 까지 해주겠습니다.

한번더 수정해서 commit 를 해보겠습니다.

다른사람들이 특정한 commit 을 언제든지 다운로드 할 수 있도록 git tag 1.0.0 master 를 해보겠습니다. master 를 하면 가장 최근 commit 을 가르킵니다. 또는 commit id 를 통해 특정 committag 로 만들 수 있습니다.

git tag 를 통해 확인 가능하고 git log --decorate 사용시 tag 가 가르키는 commit 을 확인 할 수 있습니다.

다시 한번더 f1.txt 를 수정하고 commit 를 하겠습니다.

즉 우리가 만들었던 태그는 여전히 같은 commit id 를 가르키고 있습니다. 하지만 branchcommit 을 함으로써 가리키는 commit id 가 변했습니다.

git checkout 1.0.0 을 통해서 tag 를 이용하여 checkout 도 가능합니다.

현재까지는 light weight tag 를 사용했습니다. 즉 tag 에 따로 커밋메세지를 사용하지 않았습니다. tag 에도 어떤것이 변화하였는지 메세지를 달 수 있습니다.
이것을 annotated tag , 즉 '주석을 단다' 라는 의미를 가집니다.

-a 옵션은 아까 설명한 annotated 의 약자이고 1.1.0 은 버전 이름 , -m 은 메세지를 사용하겠다는 의미입니다.

tag 에 대한 상세 정보는 -v 옵션을 통해 확인 가능합니다.
bug fix 라는 내용이 들어간 것을 확인 할 수 있습니다.

이제 이 tag 버전을 원격저장소에 업로드 해봅시다. github 로 가서 tag 라는 repository 를 만들어 주겠습니다.

git remote add origin https주소 를 사용해주고
git push --set-upstream origin master 를 통해서 업로드 해줍니다. 하지만 이렇게 해서는 tag 가 업로드 되지 않습니다.

taggithub 에 업로드 하기 위해서는 git push --tags 라는 옵션까지 사용해야합니다.

이후 githubrepository 에 들어가보면 tag 가 있는것을 확인할 수 있습니다. 들어가봅시다.

정상적으로 태그가 추가됬습니다. 또한 태그의 이름은 꼭 1.0.0 같은 이름말고 다른것도 사용가능합니다.

만약 github 에서 tag 에 대한 더 자세한 내용을 담고 싶으면 우측 상단의 Create release from tag 를 클릭해줍니다.

Release title 를 통해서 제목을 넣을 수 있고 내용도 넣을 수 있습니다. Publish release 를 눌러봅시다.

그러면 Latest 라는 문구가 뜨고 우측에 Compare 기능도 존재합니다.
그 바로옆에 연필모양을 클릭하면 Edit 에 들어가집니다.

semantic versioning 라는 부분이 있는데 들어가봅시다.

이 사이트에 들어가면 '어떻게 버전 번호를 작성하는가?' 에 대해서 자세하게 나타나 있습니다. 영어와 한국어도 지원하고 다른나라의 언어도 많이 지원합니다.

그리고 tag 도 삭제가 가능합니다. 일단 새로운 버전을 만들어 주고
git tag -d 1.1.1 를 통해서 삭제 할 수 있습니다.

지금까지 tag 를 사용하는 법 , 그리고 light weight tag , annotated tag 에 대해 알아봤고 삭제하는 법까지 알아봤습니다.

여기까지 하도록 하겠습니다.

profile
울산대학교 IT융합학부 22학번
post-custom-banner

0개의 댓글