저장소에 주석이 달린 태그가 많이 있으며 태그를 가리키는 커밋을 해결하고 싶습니다. 태그와 커밋 SHA를 나열하는 명령이 있습니까? 태그를 확인하고 HEAD를 보면 너무 힘들 것 같습니다.
최신 정보
내가 실제로 원하는 것은 태그로 이어지는 역사를 보는 것만 git log <tagname>
으로 충분하다는 반응을 겪은 후에 깨달았습니다 .
답변으로 표시된 답변은 태그 및 커밋 목록을 얻는 데 유용합니다. 약간의 셸 해커를 사용하면 SHA + 커밋 메시지로 변환 할 수 있다고 확신합니다.
답변
이 작업을 수행하는 한 가지 방법은입니다 git rev-list
. 다음은 태그가 가리키는 커밋을 출력합니다.
$ git rev-list -n 1 $TAG
~/.gitconfig
많이 사용 하면 별칭으로 추가 할 수 있습니다 .
[alias]
tagcommit = rev-list -n 1
그런 다음 호출하십시오.
$ git tagcommit $TAG
답변
git show-ref --tags
예를 들어 git show-ref --abbrev=7 --tags
다음과 같은 내용이 표시됩니다.
f727215 refs/tags/v2.16.0
56072ac refs/tags/v2.17.0
b670805 refs/tags/v2.17.1
250ed01 refs/tags/v2.17.2
답변
그냥 사용 git show <tag>
그러나 커밋 차이도 덤프합니다. 해당 diff를 생략하려면을 사용하십시오 git log -1 <tag>
. (@DolphinDream 및 @demisx 감사합니다!)
답변
내 저장소 git show-ref TAG
에서 태그의 해시가 아닌 커밋의 해시가 아닌 태그의 해시를 보여줍니다.
git show-ref --dereference TAG
또한 커밋이 가리키는 것을 보여줍니다.
답변
에서 이고르 Zevaka :
요약
거의 똑같이 수용 가능하지만 다른 답변은 약 4 가지이므로 태그를 스키닝하는 모든 다른 방법을 요약합니다.
-
git rev-list -1 $TAG
( 답변 ).git rev-list
출력까지 이어질 커밋$TAG
유사하기git log
만 커밋의 SHA1을 도시. 이-1
(가)이를 가리키는 커밋에 출력을 제한합니다. -
git show-ref --tags
( answer )는 모든 태그 (로컬 및 원격에서 가져온) 및 해당 SHA1을 표시합니다. -
git show-ref $TAG
( answer )은 SHA1과 함께 태그 및 경로를 표시합니다. -
git rev-parse $TAG
( answer )는 주석이없는 태그의 SHA1을 표시합니다. -
git rev-parse --verify $TAG^{commit}
( answer )는 주석이 달린 태그와 주석이없는 태그의 SHA1을 표시합니다. Windows에서는git rev-parse --verify %TAG%^^^^{commit}
(모자 4 개)를 사용하십시오. -
cat .git/refs/tags/*
또는 태그가 로컬인지 또는 원격에서 가져 왔는지 여부에 따라cat .git/packed-refs
( answer ).
답변
사용하다
git rev-parse --verify <tag>^{commit}
주석이 달린 태그의 경우에도 커밋의 SHA-1을 반환합니다.
git show-ref <tag>
<tag>
주석을 달지 않으면 작동합니다 . 그리고 항상 있습니다 git for-each-ref
(자세한 내용은 설명서를 참조하십시오).
답변
이건 어때요:
git log -1 $TAGNAME
또는
git log -1 origin/$TAGNAME