태그
배포는 정리된 최종 결과물을 만드는 과정이며, 깃은 정리된 커밋을 배포할 수 있도록 특수한 포인터를 제공하는데 이를 태그(tag)라 한다.태그 포인터로 최종 배포한의 커밋을 구별할 수 있으며, 커밋 해시 값을 기준으로 생성된다. 당연히 중복 생성은 불가하다.
태그는 다음과 같이 사용한다.
- git tag [옵션] [버전]
- -l , --list : 태그 목록을 볼 수 있다.
- -a : Annotated
- -d : 태그 삭제
- 해당 커밋이 삭제되는 것이 아니라 태그만 삭제됨. 당연히 해당 태그는 재사용할 수 있다.
태그는 추가 정보를 보유하는지 여부에 따라 두가지로 구분할 수 있다.
- Annotated
- Annotated 태그를 생성하려면 tag 명령어 뒤에 -a 옵션을 사용한다.
- 일반적으로 사용하는 태그 방법으로, 커밋 해시 값 뿐 아니라 생성자 정보를 추가로 넣을 수 있다.
- 태크 버전 뒤에 커밋ID를 지정하면 지정된 커밋 해시 값을 기준으로 새로운 태그를 생성한다.
- Lightweight
- 버전 이름만 포함
태그 상세 정보 확인
tag 명령어는 태그의 목록만 출력할 뿐 상세 정보는 표시하지 않는다. 태그의 상세 정보를 확인하려면 다음의 명령어를 사용해야 한다.
- git show 태그이름
태그를 사용한 체크아웃
태그는 특정 커밋을 가리키는 포인터이며 태그를 사용하여 특정 커밋으로 체크아웃할 수 있다. 명령어는 다음과 같다.
- git checkout 태그이름
태그 공유
태그를 원격저장소에도 전송할 수 있다. push 명령어를 사용해 브랜치 이름 대신 태그 이름을 이름을 입력하면 된다.
- git push 서버이름 태그이름 [옵션]
- --tags : 로컬 저장소의 모든 태그를 한꺼번에 원격 저장소로 보낼 수 있다.
- --delete : 원격 저장소의 지정된 태그이름을 삭제한다.
- :[원격저장소태그이름] : 로컬 저장소의 태그를 원격저장소의 태그 이름으로 전송
문제
태그 리스트를 보려면 어떤 명령어를 사용하는가
git tag -l
태그를 삭제하려면 어떤 명령어를 사용하는가
git tag -d 태그이름
태그 등록방식은 2가지가 있다. 어떤것들이 있는가??
annotated와 lightweight가 있다. 각각의 방식은 다음과 같다.
- Annotated : 이름 외에도 커밋 해시값 뿐 아니라 생성자 정보를 추가로 넣을 수 있다.
- git tag -a 태그이름
- Lightweight : 커밋의 체크섬만 가지고 있음
- git tag 태그이름
태그 상세 정보를 보려면 어떤 명령어를 사용하는가
git show 태그이름
특정 커밋에 태그를 붙히려면 어떤 명령어를 사용하는가
git tag -a 태그명 커밋ID
태그로 특정 커밋ID로 checkout을 할 수 있는가? 아니라면 이유는 무엇인가
가능하다. git checkout 태그로 할 수 있다. 각 태그는 특정 커밋을 가리키고 있는 포인터이기 때문이다.
모든 태그를 원격 저장소와 동기화를 하려면 어떤 명령어를 사용하는가
git push 원격 저장소 별칭 --tags
원격 저장소에 있는 태그를 삭제하려면 어떤 명령어를 사용하는가
git push --delete 원격 저장소 별칭 태그이름
원격 저장소에 있는 태그를 삭제했다면 로컬 저장소에 있는 태그도 같이 삭제해줘야 한다. 그를 위해서 'git tag -d 태그이름'을 사용할 수 있다.
로컬 저장소에선 1.0.0 이였던 태그를 원격 저장소에서 2.0.0태그로 저장하기 위해서는 어떤 명령어를 사용하는가??
git push 원격저장소별칭 태그이름: 원격 저장소 태그 이름
'오픈소스SW' 카테고리의 다른 글
오픈소스SW_Chapter12_고급 기능 (0) | 2022.12.08 |
---|---|
오픈소스SW_Chapter11_서브모듈 (0) | 2022.12.08 |
오픈소스SW_Chapter09_복귀 (0) | 2022.12.05 |
오픈소스SW_Chpater08_병합과 충돌 (0) | 2022.10.24 |
오픈소스SW_Chapter07_임시 처리 (0) | 2022.10.24 |