Получить результаты "git description --abbrev = 0" в переменную - PullRequest
0 голосов
/ 02 апреля 2019

Цель: получить вывод git describe --tag=Foo --abbrev=0 в переменную среды Windows.

Моя попытка:

C:\Projects\Foo> FOR /F "tokens=* USEBACKQ" %F IN \
   (`git describe HEAD --match "Foo*" --abbrev=0 --debug`) DO SET Var=%F

Результат:

описать HEAD Нетточное совпадение по ссылкам или тегам, поиск по описанию

завершен поиск по адресу d501f4f270405435692e5eb369fafbb53f0c74a2 с комментариями 463 Foo0.0-beta пройдено 562 коммитов

описать 0 фатально: недопустимое имя объекта 0

Это странная фатальная ошибка.Без FOR, Git работает:

git describe HEAD --match "Foo*" --abbrev=0 --debug

Нет точного соответствия по ссылкам или тегам, поиск по описанию

Закончен поиск по d501f4f270405435692e5eb369fafbb53f0c74a2 с комментариями 463Foo0.0-beta прошел 562 коммитов

Foo0.0-beta

Теперь describe 0 fatal можно проследить до аргумента --abbrev=0, но это существенный аргумент.Кажется, что FOR разбил аргумент --abbrev=0 на две части, что привело к тому, что Git трактовал 0 как значение хеша и пытался найти тег для описания этого хеша.

Ссылки: Получение вывода команды в переменную , Получение имени тега с помощью git description

1 Ответ

0 голосов
/ 08 июля 2019

Escape = с помощью каретки (^)

FOR /F "tokens=* USEBACKQ" %F IN \
   (`git describe HEAD --match "Foo*" --abbrev^=0 --debug`) DO SET Var=%F 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...