Nice programing

git에서 특정 커밋을 가리키는 모든 태그를 나열하는 방법

nicepro 2020. 11. 12. 20:11
반응형

git에서 특정 커밋을 가리키는 모든 태그를 나열하는 방법


나는 명령 git describegit-name-rev보았지만 둘 이상의 태그를 나열하도록 관리하지 못했습니다.

예 : sha1 48eb354가 있고 태그 A와 B가이를 가리키는 것을 알고 있습니다. 그래서 git {something} 48eb354"A, B"와 유사한 출력을 생성 하는 git 명령 원합니다 . 다른 태그 또는 분기와 관련된 참조를 아는 데 관심이 없습니다.


git show-ref --tags -d | grep ^48eb354 | sed -e 's,.* refs/tags/,,' -e 's/\^{}//'

경량 및 주석이 달린 태그 모두에서 작동해야합니다.


git tag --points-at HEAD

HEAD의 모든 태그를 표시합니다. HEAD를 sha1 ID로 대체 할 수도 있습니다.


당신이 사용할 수있는:

git tag --contains <commit>

특정 커밋에서 모든 태그를 표시합니다. 다음 대신 사용할 수 있습니다.

git tag --points-at HEAD

1.7.10에서만 사용할 수 있습니다.


git for-each-ref --format='%(objectname) %(refname:short)' refs/tags/ |
  grep ^$commit_id |
    cut -d' ' -f2

더 쉽게 할 수없는 것이 아쉽습니다. git tag커밋 ID를 포함하는 또 다른 플래그는 해당 git for-each-ref호출을 자연스럽게 표현할 수 있습니다.


다음 명령은 작업을 수행하지만 .git 디렉토리의 내용을 직접 구문 분석하므로 git 저장소 형식이 변경되면 중단 될 수 있습니다.

grep -l -r -e '^48eb354' .git/refs/tags|sed -e 's,.*/,,'

참고 URL : https://stackoverflow.com/questions/4545370/how-to-list-all-tags-pointing-to-a-specific-commit-in-git

반응형