Как извлечь последний хэш коммита для удаленного репозитория git в Windows?

#windows #git #cmd #command-line

#Windows #git #cmd #командная строка

Вопрос:

Я пытаюсь прочитать последнюю фиксацию для удаленного репозитория git, используя эту команду

 git ls-remote https://repo.myrepository.com/scm/swc/project.git refs/heads/qa
  

он отлично работает и возвращает мне что-то вроде этого

 5261626431661281d788382a1ed6ab1440fd93a8        refs/heads/qa
  

Но я не могу найти в Интернете какой-либо способ извлечь только хэш коммита из возвращаемой строки в командной строке

Я думал, что будет очень легко найти эту информацию в Интернете, но единственный ответ, который я нахожу везде, это

 git ls-remote https://repo.myrepository.com/scm/swc/project.git refs/heads/qa |  cut -f 1
  

Но это не работает в командной строке Windows, в нем говорится cut , что это не распознанная команда.

Может кто-нибудь, пожалуйста, помогите с версией командной строки Windows?

Комментарии:

1. Какую операционную систему вы используете? cut это команда Linux.

2. @dan1st — Windows

3. Это было закрыто, поскольку требует ясности, но, честно говоря, проблема ясна, и она уже была помечена cmd .

4. Вопрос @jnovack открыт для ответов сейчас.

Ответ №1:

for /f это то, как вы можете «вырезать» токены с помощью разделителя.

В следующих примерах delims это Space.

 # inside of a batch file
# get first token, delimited by <space>
for /f "tokens=1,* delims= " %%a in (
    'git ls-remote https://repo.myrepository.com/scm/swc/project.git refs/heads/qa'
) do echo %%a
  
 # command line
# get second token, delimited by <space>
for /f "tokens=2,* delims= " %a in ('echo one two') do echo %a
  

введите описание изображения здесь