2010-03-28 3 views

답변

8

git에서 "일반"태그 (주석이 달린 가벼운 태그가 아님)는 메타 데이터와 태그가 붙은 객체의 SHA1을 포함하는 객체입니다. the git object model에있는 git 커뮤니티 책 섹션의 예쁜 그림이 있습니다 (맨 아래로 스크롤).

따라서 일반 태그에서 show-ref를 사용하면 일반적으로 태그 객체에 대한 정보를 제공합니다. -d/--dereference 옵션을 사용하면 태그가 참조하는 객체로 태그가 간접 참조되고 그에 대한 정보가 대신 제공됩니다.

그리고 경량 대 주석 태그에 대한 메모, 경우에 당신은 인식하지 못합니다 : 경량 태그 (-a, -s, 또는 -u 같은 메타 데이터 제공하는 옵션 중 하나없이 IE) git tag <tag name>을 사용하여 만들어집니다 . 태그 객체가 아닙니다. 태그를 지정한 객체를 바로 가리키는 ref입니다. 이러한 옵션 중 하나를 제공하면 메타 데이터를 태그에 첨부하므로 git은 메타 데이터를 보유 할 태그 객체를 만듭니다.

+0

좋은 요약. + 1 http://stackoverflow.com/questions/1194385/seeing-what-revision-goes-with-a-tag-in-git도 참조하십시오. 태그는 태그 객체 또는 경량의 레이블이지만 스크립트를 사용하여 검색 할 수있는 방법으로'git show v1.5.0^{}'또는'git rev-parse v1.5.0^{}'을 사용할 수있는 커밋 만보고 싶습니다. 커밋 ID. " – VonC

+0

VonC의 유용한 힌트는 아마도 git에 익숙하지 않은 사람에게는 조금 이상하게 보일 것입니다. '^ {}'접미사는 태그에 대한 특별한 표기법입니다. "태그 이외의 것을 찾을 때까지 태그를 반복적으로 역 참조"한다는 의미입니다. 태그가있는 태그에 미친 짓을 한 경우에 대비해. – Cascabel

+0

사실, 표기법이 이상합니다.) 태그가있는 태그에 태그를 지정하는 경우 메타 데이터를 추가하는 것이 도움이 될 수 있습니다 (예 : '승격 수준' '거부 됨', '테스트 됨', '릴리스 됨' , ...)를 기존 태그가 지정된 커밋에 추가합니다. – VonC