获取签出修订版的git标签?

时间:2013-03-29 12:29:11

标签: git tags

我在做

$ git tag

current
tag_example_to_test_task

$ git checkout tag_example_to_test_task

...

HEAD is now at 75fdde3... commit comment text example

 $ git name-rev --name-only --tags HEAD

current

$ git describe --exact-match --tags

current

我需要用这样的命令结束执行顺序:

$ git "some command here"

tag_example_to_test_task

怎么做?如何获取当前签出标签的标签名称?

5 个答案:

答案 0 :(得分:3)

我认为

git log -n 1 --pretty=format:'%d'

应该这样做。

但是,它会显示当前版本的所有分支和标记的名称。我认为不可能只获得用于检查修订版的单个标签。

答案 1 :(得分:1)

要查找您当前提交的内容,可以使用

git reflog | sed q

要追捕你的上一次结帐:

git reflog | sed '/ checkout: /! d; q'

那会让你感觉像是

b836444 HEAD@{7}: checkout: moving from AMFD to testing

显示自执行git checkout testing以来您已添加了7次提交。

答案 2 :(得分:0)

如果您需要当前版本的详细信息,请使用git describe。它将告诉您最后一个标记以及该标记之后的提交数量。人类可读,真的不是为了节目消费。

答案 3 :(得分:0)

这只输出最新提交的标记。

# git log | head -1
commit 507e0647efd7e49aee53b14da970a7c2bf24555b

答案 4 :(得分:0)

这应该可以解决问题:

git tag --points-at=$(git rev-parse HEAD)

git rev-parse HEAD将获得当前HEAD的SHA256。如果此提交恰好被标记,则将回复此提交。如果未标记当前HEAD,则结果为空。