シェルスクリプトを使用して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}' 

関連情報