5

我正在做

$ 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

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

4

5 回答 5

3

我认为

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

应该做的伎俩。

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

于 2013-03-29T12:37:59.350 回答
1

要找到您当前提交的原因,您可以使用

git reflog | sed q

要查找您的最后一次结帐:

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

这会让你得到类似的东西

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

表明你已经添加了七次提交,因为git checkout testing.

于 2013-09-06T14:39:04.550 回答
-1

如果您想要当前版本的详细信息,请使用git describe. 它会告诉您最后一个标签以及该标签之后的提交次数。人类可读,而不是真正用于程序消费。

于 2013-03-30T02:29:17.870 回答
-1

这仅输出最新提交的标签。

# git log | head -1
commit 507e0647efd7e49aee53b14da970a7c2bf24555b
于 2014-06-26T18:25:05.627 回答
-1

这应该可以解决问题:

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

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

于 2016-04-01T23:24:16.940 回答