2012-11-12 14 views
19

Używam ubuntu i mam folder gitrepos, który ma wiele klonów wielu replik git z github.Wielokrotne pobranie git w jednym folderze zawierającym wiele repozytoriów

Chcę jednego skryptu, który może automatycznie zrobić ciągnięcie git we wszystkich moich repozytoriach.

powiedzieć

[gitrepos] 
    [repo1] 
    [repo2] 
    [repo3] 
    ... 

chcę skrypt zrobić git pull z wszystkimi repox
Uwaga Nazwa repo są różne.

dowolny skrypt powłoki lub py dostępny dla tego?

+0

Popraw swoje pytanie, publikując kod [odpowiednio sformatowany] (http://stackoverflow.com/editing-help), który zastosowałeś do problemu. –

+3

Nie sądzę, aby to pytanie zostało zamknięte, miałem ten sam problem. Nie ma kodu, który można opublikować, jego pytanie brzmi raczej, jak zarządzać wieloma repozytoriami git i wydaje mi się, że jest jasne, że to –

+1

"wymelduj się", jak zasugerował opqdonut. Kroki 1) pobierz mr i dodaj go do ścieżki 2) przejdź do każdego repozytorium git i wpisz "mr register" 3) wpisz mr update, a wykona ciąg git na wszystkich twoich repo. super przydatny, świetne pytanie –

Odpowiedz

15

Linia Coś to będzie działać:

Z ~/gitrepos:

for REPO in `ls`; do (cd "$REPO"; git pull); done; 

Od wszędzie:

for REPO in "`find ~/gitrepos -maxdepth 0 -type d`"; do (cd "$REPO"; git pull); done; 
+0

Zamiast używać pętli for na wyjściu find, możesz zrobić: 'find ... -exec sh -c 'cd $ 0 && git pull' {} \;' –

+0

'ls *' pojawia się aby wyświetlić listę repozytorium repo po uruchomieniu z mojego katalogu '~/git /'. Prawdopodobnie nie jest to, czego szukają googlerzy. – ThorSummoner

17

spojrzeć mr, narzędzie przeznaczone do dokładnie tego.

+0

fantastyczne narzędzie. Działa niesamowicie dla mnie! Mogę teraz zaktualizować wszystkie 34 repozytoria, nad którymi pracuje mój zespół w jednym wierszu: "mr update" –

+0

Tego właśnie szukałem! – dylanjameswagner

Powiązane problemy