作業コピーの現在のブランチ名またはタグ名を取得するにはどうすればよいですか? rev-parse --abbrev-ref HEAD
がブランチ名を与えることを示す参照を見たことがありますが、チェックアウトがタグの場合、これは機能しません。その場合、「HEAD」が返されます。どういうわけか、これらのリビジョンのタグ名を取得する必要があります。
明確にするために、2つの可能な名前のいずれかが必要です。
私はあなたがこれが欲しいと思います:
git symbolic-ref -q --short HEAD || git describe --tags --exact-match
デタッチされていない場合はHEADの値が出力され、完全に一致している場合はタグ名が出力されます。それ以外の場合はエラーが表示されます。
このコマンドは、次の優先順位で名前を出力できます:tag
> branch
> commit
git describe --tags --exact-match 2> /dev/null \
|| git symbolic-ref -q --short HEAD \
|| git rev-parse --short HEAD