2016-05-11 2 views
0

Я хотел бы клонировать несколько удаленных репозиториев, которые имеют похожий контекст именования. Например, они выглядят следующим образом:Git Clone Несколько репозиториев

foo/stuff 
foo/morestuff 
foo/evenmorestuff 

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

git clone [email protected]:foo/* 

Спасибо заранее.

ответ

1

Для достижения этой цели вы можете использовать некоторые функции bash. Вы можете получить все репозитории через ssh и find.

ssh [email protected] 'find foo/ -mindepth 1 -maxdepth 1 -type d' 

-mindepth 1 и -maxdepth 1 гарантировать, что вы получите только предметы непосредственно под foo/ но не сам или любые вложенные файлы foo/. Аргумент -type d возвращает только каталоги.

Теперь вы можете перебрать все результаты и выполнить git clone для каждого из них.

for repo in $(ssh [email protected] 'find foo/ -mindepth 1 -maxdepth 1 -type d'); do 
    git clone [email protected]:${repo} 
done 
+0

Благодарим за предложение. Я подумал об этом, но есть уровень контроля доступа, который предотвращает доступ к серверу git для истинной оболочки, поэтому я не могу запустить поиск для запроса. – mxmxx

+0

Я вижу вашу проблему, @mxmxx. В зависимости от того, где расположены эти хранилища, возможно, вы можете получить пути от тех, которые запускают серверы, как рекомендовано в [этой теме] (http://stackoverflow.com/a/34183734/6314540). – dendress

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