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 символов.