2013-03-29 2 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 tag -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.

0

Это выводит только тег последней фиксации.

# git log | head -1 
commit 507e0647efd7e49aee53b14da970a7c2bf24555b 
0

Это должно сделать трюк:

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

git rev-parse HEAD будет получить SHA256 текущего HEAD. Если эта фиксация будет помечена, это будет отвечено. Если текущий HEAD не помечен, результат пуст.