Git Tag
마지막 업데이트
git tag는 특정 커밋에 이름을 붙입니다 - 보통 v1.0.0 같은 릴리스 버전입니다. 태그에는 두 가지 형태가 있습니다: 경량 태그 (커밋을 가리키는 이름뿐) 와 주석 태그 (메시지, 작성자, 날짜를 담은 완전한 객체) 입니다. 태그는 자동으로 푸시되지 않으므로 별도로 푸시합니다.
터미널 플레이그라운드에서 이것들을 시도해 보세요 - 브라우저 속 진짜 셸이며 설치할 것이 없습니다.
구문
| Command | What it does |
|---|---|
git tag v1.0.0 | HEAD에 경량 태그 생성 |
git tag -a v1.0.0 -m "Release 1.0" | 메시지가 있는 주석 태그 생성 |
git tag -a v1.0.0 <hash> | 특정 과거 커밋에 태그 지정 |
git tag | 모든 태그 목록 표시 |
git push origin v1.0.0 | 태그 하나를 원격으로 푸시 |
git push --tags | 모든 태그 푸시 |
git tag -d v1.0.0 | 로컬 태그 삭제 |
lightweight vs annotated
| Lightweight | Annotated | |
|---|---|---|
| 메시지 저장 | 아니오 | 예 |
| 작성자와 날짜 기록 | 아니오 | 예 |
| 릴리스에 적합 | 아니오 | 예 |
git tag 자주 묻는 질문
Git에서 태그를 어떻게 생성하나요?
빠른 표시용으로는
git tag <name>을 실행하세요 (현재 커밋에 경량 태그를 생성). 릴리스용으로는 주석 태그를 생성하세요: git tag -a v1.0.0 -m "Release 1.0"은 메시지, 작성자, 날짜를 저장합니다. 끝에 커밋 해시를 추가하면 더 오래된 커밋에 태그를 지정할 수 있습니다.경량 태그와 주석 태그의 차이는 무엇인가요?
경량 태그는 커밋을 가리키는 이름일 뿐 추가 데이터가 없습니다. 주석 태그는 메시지, 태그 작성자 이름, 날짜를 담은 완전한 Git 객체이며 검증할 수 있습니다. 릴리스에는 주석 태그를 사용하고, 임시 또는 비공개 표시에는 경량 태그로 충분합니다.
태그를 원격으로 어떻게 푸시하나요?
태그는 일반적인
git push에 포함되지 않습니다. 특정 태그는 git push origin <tagname>으로 푸시하거나, 모든 태그를 한 번에 git push --tags로 푸시하세요. 이 점이 사람들을 혼란스럽게 합니다 - 생성한 태그는 푸시하기 전까지 로컬에 남아 있습니다.태그를 어떻게 삭제하나요?
로컬 태그는
git tag -d <tagname>으로 삭제하세요. 원격에서도 제거하려면 git push origin --delete <tagname>을 실행하세요 (또는 이전 방식인 git push origin :refs/tags/<tagname>). 로컬 태그와 원격 태그 삭제는 별개의 단계입니다.이것을 온라인으로 연습할 수 있나요?
네. 터미널 플레이그라운드를 열어 브라우저 속 진짜 셸에서
git tag를 실행하세요 - 설치할 것이 없습니다. Coddy의 무료 인터랙티브 Git 강좌에서도 태그 지정과 릴리스를 단계별로 다룹니다.