2015-10-01 2 views
1

Я хочу проверить последний тег git в Windows.Как получить последний тег git в Windows?

Я использую следующую команду в Linux:

git checkout `git describe --tags --abbrev=0 origin/master`

Что эквивалент этой команды на Windows?


Я попытался с помощью forset & расширить backticked команды в переменную для использования на git checkout.

Я начал с:

for /f %a in ('git describe') do (echo %a).

Он возвращает v1.0.18-131-g792d5a2. Это работает, но содержит слишком много информации. Мне просто нужно v1.0.18. Вот почему я пытаюсь использовать --abbrev=<n> для подавления длинного формата и показывать только ближайший тег.

Когда я добавил аргументы:

for /f %a in ('git describe --tags --abbrev=0 origin/master') do (echo %a)

он терпит неудачу с: fatal: Not a valid object name 0. Не знаю, почему ...


Вот что я получил до сих пор:

checkout-latest-tag.bat

@echo off 

for /f "usebackq delims=" %%a in ('git describe --tags --abbrev=0 origin/master') do (
    set LATEST_TAG=%%a 
) 
echo The latest tag is: %LATEST_TAG% 

git checkout %LATEST_TAG% 

Было бы неплохо, если бы вы могли придумать однострочника.

+1

'для/ф«delims = -»% а в («мерзавец описывает») делать эхо% a' – Aacini

ответ

3

Используйте ^, чтобы избежать оскорбительного =.

for /f %%a in ('git describe --tags --abbrev^=0 origin/master') do git checkout %%a 
+0

О не знало об операторе каретки. Работает как шарм! Большое спасибо! –