2013-03-29 58 views
4

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

$ 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 

如何做到这一点?如何获取当前签出标签的标签名称?

+0

要列出所有标签吗? git标签-l –

回答

3

我觉得

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

应该做的伎俩。

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

0

如果您需要当前版本的详细信息,请使用git describe。它会告诉你最后一个标签和提交后的提交数量。人类可读,真的不适合程序使用。

1

要找到什么让你当前的提交,你可以使用

git reflog | sed q 

要寻找您的最后结帐:

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

这将让你像

b836444 [email protected]{7}: checkout: moving from AMFD to testing 

表示自做git checkout testing以来已添加了7次提交。

0

这只输出最新落实的标签。

# git log | head -1 
commit 507e0647efd7e49aee53b14da970a7c2bf24555b 
0

这应该做的伎俩:

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

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