2015-05-04 30 views
5

Devo automatizzare clonare un repository e recuperare tutti i sottomoduli. I moduli URL per i repository sono specificati allo .gitmodules. Se dovessi andare con le impostazioni predefinite vorrei solo fareClona un repository con sottomoduli: credenziali di override

git clone --recursive https://username:[email protected] 

Il problema è le credenziali non sono inclusi nel .gitmodules di file e sono richiamato per coloro che quando mi clonare. Devo usare HTTPS piuttosto che SSH.

ho cercato di presentare le credenziali utilizzando git config:

git clone https://username:[email protected] my_repo 
cd my_repo 
git submodule init 
git config submodule.my_submodule.url "https://username:[email protected]/my_submodule.git" 
git submodule update 

ma ho chiesto di credenziali nel l'ultimo passo aggiornamento. Ho controllato che l'URL del sottomodulo sia corretto e abbia credenziali adeguate nel file .git/config.

+1

hai provato '' git submodule sync''? –

+1

Si scopre che non stavo usando il nome proprio per "my_submole". Sono stati tratti in inganno dal completamento delle schede. Ho trovato il nome proprio in '.gitmodules'. – sakovias

risposta

3

Sembra che tu stia cercando di usare le credenziali git ma non avere fortuna.

Opzione 1

Aggiungere le credenziali utilizzando l'helper credenziale:

git config credential.https://example.com.username myusername 
git config credential.helper "$helper $options" 

Controlla la tua ~/.gitconfig e verificare che si aggiunge la voce appropriata.

Ulteriori approfondimenti: http://git-scm.com/docs/gitcredentials

Opzione 2

vorrei ricontrollare il contenuto dei .git-credenziali di presentare e fare una nuova voce per il modulo se non è presente. Questo file è utilizzato internamente dall'helper delle credenziali git.

http://git-scm.com/docs/git-credential-store

Opzione 3

facile soluzione in Windows è quello di rimuovere il nome utente, la password da file moduli:

[submodule foo] 
    path = sub/foo 
    url = https://example.com/git/foo.git 

e creare un file ~/.netrc.

machine example.com 
    login myusername 
    password areamandyingtotellsomeonehiscoolpassword 

Complimenti a Git submodule URL not including username?.

7

Dopo editting file .gitmodules è necessario applicare le modifiche utilizzando

git submodule sync 

La prossima volta che si esegue git submodule update verrà utilizzato il nuovo URL.