2014-11-15 3 views
1

Я попытался запустить эту команду:«мерзавец подмодуль Еогеасп» не работает на Windows,

git submodule --quiet foreach "echo $name" 

получить имена всех подмодулей, но это ничего не возвращает. В Linux он работает так, как ожидалось.

Я использую Windows 7, git версии 2.1.1 под Cygwin.

+0

Попробуйте одинарные кавычки вокруг 'echo ...' –

+0

@ StefanNäwe Это не сработало. – Amumu

ответ

3

Cygwin означает unix-подобный окружающая среда.

Как вы можете видеть в других примерах мерзавец подмодуль Foreach (например, «Bash: Git submodule foreach?»), все эти команды используют одинарные кавычки директивы Еогеасп (как прокомментировал Stefan Näwe)

Это thread do mention в примере:

git submodules foreach 'git config -f $toplevel/.git/config submodule.$name.ignore all' 

Обратите внимание на одинарные кавычки (двойные кавычки не работают из msysgit Баш оболочки)


Но, как я уже упоминал в "git submodule foreach - Robust way to recursively commit a child module first?", с мерзавцем 1.9.0+ (и commit 1c4fb13), вы также можете попробовать без цитаты:

git submodule --quiet foreach echo $name 

Как commented по Stefan Näwe, вы необходимо будет сделать git submodule update --init --recursive первым, перед любой директивой foreach.

+0

Ну, это не сработало. Возможно, я должен переустановить Git? – Amumu

+0

@ Амуму вы попробовали снаружи Cygwin, в базовом CMD, с Git для Windows 1.9.4? (https://github.com/msysgit/msysgit/releases/) – VonC

+0

@ Амуму, вы уверены, что подмодули действительно там? Вы клонировали с '--recursive', или вы сделали git-обновление подмодуля -i' после' git clone'? –

Смежные вопросы