쉘 스크립트를 사용하여 git에서 "태그" 정보 추출

쉘 스크립트를 사용하여 git에서 "태그" 정보 추출

이것벤처캐피탈 번들LaTeX 문서에 쉽게 삽입할 수 있도록 git 저장소에 대한 정보를 추출할 수 있는 깔끔하고 작은 패키지입니다. 현재는 현재 커밋에 태그가 지정되었는지 여부와 태그 이름이 무엇인지에 대한 정보를 추출하지 않습니다. vc이를 위해 스크립트를 어떻게 편집합니까 ?

vc-git.awk그러면 생성된 vc.tex 파일에 추가 행을 추가하기 위해 스크립트를 어떻게 편집합니까 ? 아마도 나는 다음과 같은 줄을 원할 것입니다.

print "\\gdef\\GITTag{" Tag "}%"

하지만 그것이 무엇을 의미하는지 awk에게 알려주려면 이전 줄이 필요합니까 " Tag "?

이것은 LaTeX에 관한 질문이 아니라 git, awk 및 bash에 관한 질문입니다.

답변1

git log --decorate -1 [commit]

commit( 생략된 경우) 레이블이 있으면 HEAD커밋 해시가 뒤따릅니다 (tag: name)(그리고 다른 여러 기호 참조도 가능). 이것을 선택하면 더 구체적으로 지정할 수 있습니다.

git log --pretty=%d

답변2

다음을 통해 커밋 태그가 가리키는 내용을 얻을 수 있습니다.

git show -s 'TAG_NAME^{commit}' --format='%H'

안타깝게도 커밋되었는지 확인하는 유일한 방법은 태그를 지정하여 모든 태그를 확인하는 것입니다.

답변3

커밋에서 태그 이름을 가져오는 데 사용할 수 있습니다 name-rev.

git name-rev <commit> --tags

한 가지 예:

$ git name-rev fcfeabe --tags
fcfeabe tags/v2.36-beta2

따라서 태그를 얻으십시오.

git name-rev fcfeabe --tags | awk '{sub("tags/", ""); print $2}' 

관련 정보