2

Я хотел повторно синхронизировать теги в моем локальном git-репозитории с тегами на нашем удаленном сервере, используя этот ответ, предоставленный в StackOverflow:

git tag -l | xargs git tag -d
git fetch --tags

У меня есть git для Windows Portable, который включает в себя xargs из FindUtils для Windows (насколько я могу судить).

Когда я запускаю первую часть команды, все, что я получаю, это:

xargs: git: Нет такого файла или каталога

Если я изменю команду для запуска:

git tag -l | xargs echo

Это правильно "повторяет" теги для меня. Итак, мой единственный вывод, что xargs по какой-то причине не может разрешить исполняемые файлы по пути.

Как я могу заставить xargs правильно выполнить то, что ему передали (не прибегая к передаче полного пути к git.exe?)

1 ответ1

1

Я использую порт Gnu на Windows инструментов Unix и получаю похожую проблему, но сообщение об ошибке всегда является Invalid argument , например

> printf "Hello World!" | xargs printf "%s %s"
xargs: printf: Invalid argument

Как представляется, одним из решений является использование "общеизвестного" дополнительного уровня косвенности, например оболочки, такой как cmd.exe , для фактического вызова команды:

> printf "Hello World!" | xargs cmd /c printf "%s %s"
Hello World!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .