2012-11-12 17 views
19

Sto usando ubuntu e ho una cartella gitrepos che ha molti cloni di repository git multipli da github.Più git pull in una cartella contenente repository multipli

voglio uno script che possa eseguire automaticamente un pull git in tutti i miei repository.

dicono

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

Voglio uno script per fare un pull git da tutto repox
nota il nome di pronti contro termine sono diversi.

qualsiasi shell o script py disponibile per questo?

+0

Migliora la tua domanda pubblicando un codice [correttamente formattato] (http://stackoverflow.com/editing-help) che hai applicato al problema. –

+3

Non penso che questa domanda avrebbe dovuto essere chiusa, ho avuto lo stesso identico problema. Non c'è il codice da pubblicare, la sua domanda è più come gestire più repository git e mi sembra chiaro –

+1

check out 'mr' come suggerito da opqdonut. Passaggi 1) scaricare mr e aggiungerlo al percorso 2) accedere a ciascun repository di git e digitare 'mr register' 3) digitare update mr ed eseguirà un pull git su tutti i repository. super maneggevole, ottima domanda –

risposta

15

linea Qualcosa questo dovrebbe funzionare:

Da ~/gitrepos:

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

Da nessuna parte:

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

Piuttosto che usare un ciclo for sull'output di find, puoi fare: 'find ... -exec sh -c 'cd $ 0 && git pull' {} \;' –

+0

'ls *' appare per elencare il repo sotto-directory quando viene eseguito dalla mia cartella '~/git /'. Probabilmente no è ciò che i googler stanno cercando. – ThorSummoner

17

Date un'occhiata al mr, uno strumento pensato per esattamente questo.

+0

strumento fantastico. Funziona incredibilmente per me! Ora posso aggiornare tutti i 34 repository su cui il mio team sta lavorando su una riga: "mr update" –

+0

Questo era esattamente quello che stavo cercando! – dylanjameswagner

Problemi correlati