Получить git текущее имя ветки/тега

Как получить текущую ветку или имя тега для моей рабочей копии? Я видел ссылки, которые указывают, что rev-parse --abbrev-ref HEAD даст имя ветки, но это не работает, если проверка имеет тег, и в этом случае он просто возвращает "HEAD". Мне нужно как-то получить имя тега этих изменений.

Чтобы быть ясным, мне нужно одно из двух возможных имен:

  • Если текущая проверка - это HEAD ветки, я хочу, чтобы имя ветки
  • Если это отдельный HEAD, я хочу имя тега (в предположении есть тег)

Ответ 1

Я думаю, вы этого хотите:

git symbolic-ref -q --short HEAD || git describe --tags --exact-match

Это выведет значение HEAD, если оно не отделится, или испустит имя тега, если оно точное совпадение. Это покажет вам ошибку.