태그 생성하기
태그는 생성한다기보다는 꼬리표니까 붙인다는 말이 더 어울릴 것 같습니다.
태그를 붙이는(생성하는) 방법과 관련한 명령어 사용법이 3가지가 있었습니다.
태그를 만드는데 이렇게 방법이 여러 가지인 이유는 Git에서 태그를 다음의 두 종류로 구분하기 때문입니다.
- Lightweight 태그
- Annotated 태그
Annotated 태그는 영문 그대로 주석을 달수 있는 태그입니다.
반면에 Lightweight 태그는 단순히 표시만 할 수 있는 태그라고 이해하면 되겠습니다.
일반적으로는 Annotated 태그를 사용하는 것이 좋습니다.
필요한 정보들을 부가적으로 남겨 둘 수 있기 때문에 다른 사람들과 공유함에 있어서도 나중에 다시 찾아봤을 때 도움이 됩니다.
Lightweight 태그는 보통 임시로 생성하는 경우나 다른 부가적인 정보가 정말 필요 없을 때 사용합니다.
Lightweight 태그
먼저 Lightwegith 태그를 생성하는 방법은 앞서 명령어 중에 다음에 해당합니다.
# 태그 생성하기 1
$ git tag <버전> <커밋ID>
<버전>은 반드시 입력해야 하며, <커밋 ID>는 생략 가능합니다.
<커밋ID>를 생략할 경우에는 최신 HEAD에 대한 커밋에 태그 하게 됩니다.
<커밋ID>를 입력하게 되면 해당 커밋에 태그를 생성할 수 있습니다.
다음과 같이 실습한 화면을 확인 바랍니다.
테스트를 위해 index.html 파일을 수정하고 커밋을 진행했습니다.
그리고, $ git tag 1.0.0 이라고 실행해 태그를 붙이고, $ git tag 명령으로 태그 목록을 확인한 것입니다.
또 다음과 같이 커밋 이력을 확인한 결과, HEAD 커밋에 태그 정보를 확인할 수 있습니다.
이는 다음 화면과 같이 소스트리에서도 확인이 가능합니다.
소스트리 왼쪽 사이드 메뉴에 [태그] 메뉴 아래에 생성된 태그 목록을 확인할 수 있으며, 커밋 이력에서는 터미널에서 확인한 바와 같이 태그 표시를 확인할 수 있습니다.
Annotated 태그
Annotated 태그를 만드는 방법은 다음과 같습니다.
# 태그 생성하기 2 (메시지 추가 작성)
$ git tag -a <버전> 실행 후 에디터에서 메시지 입력 필요
# 태그 생성하기 2-1 (메시지 동시 실행)
$ git tag -a <버전> -m “메시지”
Lightwegith 태그와 마찬가지로 맨 뒤에 <커밋ID>를 추가할 수 있습니다.
<커밋ID>를 추가할 경우 해당 커밋에 태그를 생성하게 됩니다.
다음이 테스트를 위해 index.html 파일을 추가 수정 후 커밋을 실행하고, Annotated 태그를 생성한 화면입니다.
실행 후 태그 목록과 커밋 이력을 확인한 결과 Lightweight 태그와 마찬가지로 태그가 정상적으로 생성되었음을 확인할 수 있습니다.
소스트리(Sourcetree)에서 태그 생성하기
소스트리에서도 태그를 쉽게 생성할 수 있습니다.
다음 화면과 같이 빨간색 박스에 표시한 방법으로 태그를 붙이고자 하는 지점의 커밋에 마우스를 가져가서 마우스 오른쪽 버튼을 클릭하면 나타나는 팝업 메뉴에서 [태그...] 메뉴를 선택하는 방법이 있습니다.
다르게는 그냥 상단 메뉴에서
메뉴를 클릭해도 되겠습니다.
그러면, 다음과 같이 태그를 추가할 수 있는 창이 나타납니다.
태그 이름만 입력하고, 아래 [태그 추가] 버튼을 클릭해 추가할 수 있습니다.
메시지를 추가하고 싶은 경우에는 [> 고급 옵션]을 클릭하면 다음과 같이 메시지를 입력할 수 있는 것을 확인할 수 있습니다.
태그 추가 창에서 입력하거나 선택할 수 있는 항목 중에 다음과 같이 커밋 항목이 있습니다.
“작업 사본 부모”에 체크가 된 경우에는 커밋 이력 중에 최신 커밋 HEAD이고,
특정 커밋에 태그를 남기기 위해서는 “명시된 커밋”에 체크를 하고 커밋ID(해시값)을 찾아 입력하면 되겠습니다.
소스트리에서 특정 커밋에 태그를 붙이고자 한다면,
상단의
메뉴 보다는 커밋 이력에서 마우스 오른쪽 버튼을 클릭해 [태그...] 메뉴를 선택하는 것이 편리합니다.
다음 포스팅에서는 태그의 상세 정보를 확인하는 방법에 대해 살펴보겠습니다.
감사합니다.
'코딩해보니 > Git' 카테고리의 다른 글
[Git_55] 태그(Tag) - 서버(원격) 저장소와 태그 정보 동기화 (0) | 2023.05.13 |
---|---|
[Git_54] 태그(Tag) - 상세 정보 확인 (0) | 2023.05.12 |
[Git_52] 태그(Tag) - 사용법 (관련 명령어) (0) | 2023.05.10 |
[Git_51] 원격 브랜치 삭제 및 삭제시 동기화 문제 (0) | 2023.05.09 |
[Git_50] 원격 브랜치를 로컬 저장소로 복사 & 업스트림 연결하기 (0) | 2023.05.04 |
댓글