주어진 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

답변

일부 답변 통합 :

git tag --contains [<ref>]

git tag --points-at [<ref>]

아니면 그냥

git tag

동일하게 작동하여 지정된 참조 또는 지정되지 않은 경우 현재 커밋에 대한 모든 태그를 인쇄합니다.

git describe --tags [<ref>]

여기서 <ref>기본값은 현재 커밋이고, 커밋과 연관된 태그가 없으면 128로 종료하고 커밋과 연관된 태그를 인쇄합니다 (패턴이없는 것 같음).

git describe [<ref>]--tags주석이 달린 태그 만 인쇄한다는 점
을 제외하면 with와 동일하게 작동합니다 .

옵션 --contains을 제공하면 describe지정된 커밋의 조상과 관련된 태그가 인쇄됩니다. 예를 들면

$ git init
Initialized empty Git repository in /tmp/test
$ git commit -m one --allow-empty
[master (root-commit) 7fdfff2] one
$ git commit -m two --allow-empty
[master cd5f8f1] two
$ git tag -am foo foo
$ git tag bar
$ git log --format=oneline
cd5f8f1f4f29eb164f83e224768ccaf37fe170ed (HEAD -> master, tag: foo, tag: bar) two
7fdfff2ce5e3347f8eee4c9f2413dbd4e90060e1 one
$ git describe 7fdfff2ce5e3347f8eee4c9f2413dbd4e90060e1
fatal: No tags can describe '7fdfff2ce5e3347f8eee4c9f2413dbd4e90060e1'.
Try --always, or create some tags.
$ git describe --contains 7fdfff2ce5e3347f8eee4c9f2413dbd4e90060e1
bar~1