developer tip

주어진 git 커밋과 관련된 태그를 찾는 방법은 무엇입니까?

optionbox 2020. 10. 9. 11:04
반응형

주어진 git 커밋과 관련된 태그를 찾는 방법은 무엇입니까?


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

이것이 가능한가?


에 대한 설명서를 확인하십시오 git describe. 주어진 커밋에 가장 가까운 태그 (즉, 커밋의 조상을 가리키는 태그)를 찾고 태그 측면에서 해당 커밋을 설명합니다.

커밋이 태그로 가리키는 지 여부 만 알고 싶다면 다음 출력을 확인할 수 있습니다.

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

원하는 것이 커밋을 포함하는 첫 번째 태그 인 경우 :

git describe --contains <commit>

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

이 형식의 git describe는 매우 빠르게 실행되며 커밋을 포함하는 첫 번째 태그 인 단일 출력 값과 커밋이 얼마나 뒤로 돌아 갔는지 제공합니다.


이것은 어떤가요?

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

주어진 커밋에있는 모든 태그를 제공하고 ( git describe단 하나만 제공함) 하위 커밋에 태그를 포함하지 않습니다 git tag --contains.


이 정보는 매뉴얼에서 찾을 수 있습니다.

git tag --contains <commit>

댓글을 추가하는 방법을 몰라서 답변을 게시하는 방법을 몰라 미안합니다 ... 내가 원하는 것을 제공하기 위해 두 탑스 답변의 콤보를 찾았습니다.

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

이렇게하면 해당 커밋과 주석이없는 태그에만 해당하는 태그가 제공됩니다. 태그를 찾고 싶을 때 유용하며 형식을 제거하는 것에 대해 걱정하지 않아도됩니다 (예 : Jenkins의 경우).

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

제공합니다 :

$ ReleaseBeta

참고 URL : https://stackoverflow.com/questions/1474115/how-to-find-the-tag-related-with-a-given-git-commit

반응형