2009-09-24 5 views
56

Git에서 커밋 번호와 관련된 태그를 가져 오는 방법이 있습니까?주어진 커밋에 대한 태그 정보 찾기

릴리스의 경우 일반적으로 v1.1.0과 같은 태그가 붙습니다. 빌드 스크립트에서 현재 git 정보가 들어있는 fwVersion.c 파일을 만듭니다. 현재 커밋 및 파일의 분기 정보가 있지만 태그를 추가하고 싶습니다.

이것이 가능합니까?

답변

73

확인 git describe에 대한 설명서를이 정보를 찾을 수 있습니다. 주어진 커밋에 가장 가까운 태그 (커밋의 조상을 가리키는 태그)를 찾아서 커밋을 태그로 설명합니다.

당신은 단지 다음의 출력을 확인할 수 있습니다 태그가 가리키는 커밋 있는지 알고 싶은 경우 :

git describe --exact-match <commit-id> 
+0

이것은 완벽하다, 감사합니다 !! – wes

+13

주석 처리되지 않은 태그에 대해'git describe --tags ' –

+1

나는 이것을 좋아한다. 요약하자면, 나는 현재의 개정판에서 인간이 읽을 수있는 것을 얻을 수 있다는 것을 좋아한다.'git describe --all --exact-match \'git rev-parse HEAD \'' – dsummersl

12

당신은 수동

git tag --contains <commit> 
+2

주어진 커밋 (주어진 커밋의 하위를 가리키는 태그)을 포함하는 모든 태그를 나열하므로 특정 커밋에 대한 단일 태그 또는 가장 가까운 태그에 대한 정보를 제공하지는 않습니다 목록에 단일 커밋 만 포함되어 있지 않은 경우 –

+3

찰스 베일리 (Charles Bailey)가 위에 말했듯이, 그것이 내가 원하는 것만은 아닙니다. 어쩌면 RTFM해야합니다 :) – wes

+1

글쎄, 오해 미안해. 내가 확인했을 때 당신이 요구 한 것을하는 것처럼 보였습니다. 나는 RTFM을 했어, 나는 단지 잘못된 문제를 해결하고 있었다. 희망 베일리는 당신을 도와주는 해결책을 제시했습니다. – dharga

46

당신이 원하는 것은 다음 커밋이 포함 된 첫 번째 태그 인 경우 :

git describe --contains <commit> 

은 최상의 답변을 제공합니다. 큰 저장소에서 오래된 커밋에 "git tag --contains"를 사용하는 것보다 자주 태그를 사용하는 경우 실행하는 데 시간이 걸릴 수 있으며 커밋을 포함하는 모든 태그를 제공 할 수 있습니다.

이 git 형식은 매우 빠르게 실행되며 커밋을 포함하는 첫 번째 태그와 커밋 백까지의 단일 출력 값을 제공합니다.

git describe --tags --exact-match <commit-id> 

이주는 :

6

미안 난 그냥 그렇게 대답을 게시 댓글을 추가하는 방법을 알고하지 않았다 ... 나는 두 정상의 콤보과 같이 내가 원하는 걸주고 답변을 찾을 그 커밋에 대해서만, 주석이없는 것에 대해서만 태그를 사용할 수 있습니다. 태그를 찾고 싶을 때 유용합니다 (예 : Jenkins의 경우).

예 : $ git describe --tags --exact-match head~2

당신에게 제공합니다 :

이 약
$ ReleaseBeta 
8

어떻게?

git tag --points-at <commit-id>

그것은 주어진이 (git describe는 당신에게 하나를 제공하는 반면)가 커밋 모든 태그를 당신에게 제공하고, 자손이 커밋에 (같은 git tag --contains가하는) 태그를 포함하지 않습니다.

관련 문제