2011-10-20 10 views
8

So che questo non è raccomandato, ma ho cartelle con più progetti che mi piace tenere aggiornato.GIT: Un modo per impegnarsi su più repository?

C'è un comando che avrà un aspetto per ogni repository git in una cartella e inviare i seguenti comandi ..

git add -u 
git add . 
git commit -m 'Latest' 

Così ho potuto solo cd in qualche cartella, quindi eseguire un comando che li manifestino tutto aggiornato ?

questo non è un sottomoduli interrogano

+1

Può essere che la risposta è un Sh –

+1

Anche se ci sono modi per fare questo, non ho neanche consiglio di fare quanto sopra per un unico repository, per non parlare di un gruppo di loro. Penso che trattare i tuoi commit come "mini code review" aiuti molto nel mantenere una cronologia pulita, il che aiuta molto a lungo termine nella manutenzione del codice: correzioni incrociate di correzioni, rimozione di patch indesiderate, ecc. – vhallac

+0

Non hai davvero visto il primo cosa ho scritto ?! –

risposta

5

perché non usare qualcosa di simile:

#!/bin/bash 
for DIR in `ls`; 
do 
    if [ -d $DIR/.git ]; 
    then 
      echo "updating location: " $DIR; 
      cd $DIR 
      # your commands here... 
      git add -u 
      git add . 
      git commit -m 'Latest' 

      cd .. 
    fi 
done 
+0

puoi farlo in modo che sia copia e incolla? Non sono sicuro di come aggiungere i miei comandi: \ –

+0

@Kirk: spero che tu stia usando un sistema * nix, quindi devi solo letteralmente posizionare i comandi dalla tua casella grigia tra # comandi qui ... 'e' cd ..' – Scolytus

+1

@Scolytus dovrebbe funzionare anche in mingw (testato), msysgit (non testato) su Windows. – maiklos

2

Forse siete alla ricerca di qualcosa di simile mr (homepage). Lo uso per aggiornare un po 'di repository tutto in una volta, ma può essere configurato per fare qualsiasi cosa tu voglia. È anche disponibile come pacchetto Ubuntu e Debian nei repository ufficiali. Altrimenti puoi semplicemente scrivere uno script che fa il materiale per te.

2

Disclamer: Questo è proprio codice. Non ho alcun vantaggio finanziario se lo usi o lo forzi, ma è stato scritto esattamente per questo tipo di scenario e forse è d'aiuto. ;)

Ho scritto gitglue. Puoi taggare repository ed eseguire comandi arbitrari basati su tag. Controllare this tutorial about gitglue o della forcella gitglue on Github.

Problemi correlati