2013-03-27 8 views
254

Ich versuche, Bower auf einem Build-Server im Rechenzentrum unserer Organisation einzurichten, aber der Port git scheint auf der Firewall des Datencenters nicht geöffnet zu sein. Ich kann den Git-Befehlszeilenclient über https://[repo] klonen, aber nicht git://[repo].Bower Installation nur mit https?

Gibt es einen Schalter oder eine Präferenz, die bower anweist, git clone unter Verwendung https eher als das Protokoll git durchzuführen?

Ich habe die Quelle angeschaut und erwog, den Auflösungscode zu ändern, um git:// durch https:// zu ersetzen, aber ich dachte, ich würde fragen, bevor ich zu diesen Längen gehe.

+2

möglich Duplikat [git: convert "git" Urls "http" Urls] (http://stackoverflow.com/questions/1722807/git-convert-git-urls-to-http-urls) –

Antwort

625

Sie können git das Protokoll für Sie ersetzen. Führen Sie einfach:

git config --global url."https://".insteadOf git:// 

, um HTTPS-Protokoll statt Git zu verwenden.

+13

Ich fühle mich wirklich dumm. Ich habe versucht, den Teil des Befehls vor .instead zu versuchen. Ich dachte, @Sindre sagte uns, dass wir Git ** anstelle von ** git verwenden sollten. Gute Trauer diese Englisch-ähnliche Befehle. – shriek

+98

Falls jemand anderes diese Antwort anwendet und sich später fragt, wie man diese globale Konfigurationsänderung rückgängig machen kann (wie ich), ist es: 'git config --global --unset url. 'Https: //" .insteadOf " –

+21

Sie können Geben Sie auch '--global' aus und es fügt die Konfiguration zur lokalen Datei' .git/config' hinzu. – hsribei

2

Aufbauend auf der Antwort von @Sindre, schrieb ich eine kleine Hilfsfunktion in BASH, die in meiner ~/.bashrc Datei lebt. Nennen Sie es genauso wie Sie grunt, außer jetzt heißt es nngrunt. Genießen!

function nngrunt 
{ 
    # Add a section to the global gitconfig file ~/.gitconfig that tells git to 
    # go over http instead of the git protocol, otherwise bower has fits... 
    # See http://stackoverflow.com/questions/15669091/bower-install-using-only-https 
    git config --global url."https://".insteadOf git:// 

    # Run grunt w/ any supplied args 
    grunt "[email protected]" 

    # Now cleanup the section we added to the git config file 
    # Of course we have our own extra cleanup to do via sed since the unset command 
    # leaves the section around 
    # See http://git.661346.n2.nabble.com/git-config-unset-does-not-remove-section-td7569639.html 
    git config --global --unset url."https://".insteadOf 
    sed -i 's/\[url "https:\/\/"\]//' ~/.gitconfig 
    sed -i '/^$/d' ~/.gitconfig 
}