git description показывает только последние теги и дополнительные коммиты

Есть ли какой-нибудь синтаксис для git description для отображения только последнего тега и дополнительных коммитов?

Так что вы получите

4.0.7 за то, что в коммите помечены 4.0.7
4.0.7-12 за наличие 12 коммитов с тега 4.0.7

git describe --tags довольно близко с 4.0.7-12-g09181 но я не нашел способа избавиться от добавляемого хеша.

git describe --tags --abbrev=2

все еще отображает 4.0.7-12-g0918

git describe --tags --abbrev=0

дисплеи 4.0.7 только.

2 ответа

Решение

В команде description нет возможности сделать то, что вы хотите. Вы можете передать вывод в сценарий оболочки, который удаляет хеш.

git describe --tags | sed 's/\(.*\)-.*/\1/'

см. /questions/5438754/kak-sopostavit-do-poslednego-poyavleniya-simvola-v-obolochke-bash/5438763#5438763

Спасибо!

Я столкнулся с подобной проблемой, когда я хотел сгенерировать строку вроде: "tag-commits", но при желании следовал суффикс -dirty и / или -broken.

1.0-3    
1.0-3-dirty
1.0-3-dirty-broken

(Грязный просто означает, что у вас есть незафиксированные изменения).

Принятый ответ, однако, удалит в конце тег -dirty (или когда используется -broken) и оставит хеш в выходных данных.

Чтобы это исправить, я написал следующую команду:

git describe --tags --dirty | sed 's/-g[a-z0-9]\{7\}//'

Это работает, потому что хеш всегда начинается с "g", за которым следуют 7 символов.

Другие вопросы по тегам