2015-05-04 14 views
5

Ich muss automatisieren Klonen eines Repository und Abrufen aller Submodule. Die URLs für Repository-Submodule sind unter .gitmodules angegeben. Wenn ich mit Ausfällen gehen wäre, würde ich nur tunClone ein Repo mit Submodulen: überschreiben Anmeldeinformationen

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

Das Problem ist, Anmeldeinformationen nicht in .gitmodules-Datei enthalten sind, und ich bin für die, aufgefordert, wenn ich klonen. Ich muss HTTPS anstelle von SSH verwenden.

Ich habe versucht, die Anmeldeinformationen mit git config einreichen:

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 

aber ich habe aufgefordert, Anmeldeinformationen in der letzten Aktualisierung Schritt. Ich habe überprüft, dass die Submodul-URL korrekt ist und ordnungsgemäße Anmeldeinformationen in .git/config Datei hat.

+1

haben Sie versuchen, '' git Submodul sync''? –

+1

Es stellte sich heraus, dass ich nicht den richtigen Namen für 'my_submole' verwendet habe. Durch Tab-Vervollständigung irregeführt. Ich habe den richtigen Namen in '.gitmodules' gefunden. – sakovias

Antwort

3

Sieht aus, als ob Sie versuchen, Git-Anmeldeinformationen zu verwenden, aber kein Glück haben.

Option 1

Anmeldeinformationen Fügen Sie den Berechtigungsnachweis Helfer mit:

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

Überprüfen Sie Ihre ~/.gitconfig und stellen Sie sicher, dass der entsprechende Eintrag hinzugefügt wird.

Weiterführende Literatur: http://git-scm.com/docs/gitcredentials

Option 2

Ich würde den Inhalt Ihrer .git-credentials doppeltzukontrollieren-Datei und einen neuen Eintrag für das Submodul machen, wenn es nicht vorhanden ist. Diese Datei wird intern vom git-Berechtigungshelfer verwendet.

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

Option 3

Einfache Lösung in den Fenstern ist der Benutzername, Passwort aus Modulen Datei zu entfernen:

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

und erstellen Sie eine ~/.netrc Datei.

machine example.com 
    login myusername 
    password areamandyingtotellsomeonehiscoolpassword 

Kudos zu Git submodule URL not including username?.

7

Nach editting die .gitmodules Datei benötigen Sie Änderungen zu übernehmen mit

git submodule sync 

Das nächste Mal, wenn Sie git submodule update die neue URL laufen verwendet.