2013-03-27 1 views
254

Sto cercando di configurare Bower su un server di generazione nel data center della nostra organizzazione, ma la porta di git non sembra essere aperta sul firewall del data center. Posso usare il client della riga di comando git per clonare tramite https://[repo], ma non git://[repo].Installazione di Bower utilizzando solo https?

Esiste uno switch o una preferenza che richiede a Bower di eseguire clone git utilizzando https anziché il protocollo git?

Ho esaminato la fonte e ho preso in considerazione la modifica del codice di risoluzione per sostituire git:// con https://, ma ho pensato di chiedere prima di andare a quelle lunghezze.

+2

possibile duplicato del [git: convertire gli URL "Git" a "http" gli URL] (http://stackoverflow.com/questions/1722807/git-convert-git-urls-to-http-urls) –

risposta

625

Si può fare in modo che git sostituisca il protocollo per voi. Basta eseguire:

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

per utilizzare il protocollo HTTPS anziché Git.

+13

Mi sento davvero stupido. Ho continuato a provare la parte del comando prima di. Invece di pensare che @Sindre ci stesse dicendo di usare git ** inveceOf ** git. Buongiorno questi comandi di tipo inglese. – shriek

+98

Nel caso in cui qualcun altro applichi questa risposta e poi si chieda in seguito come modificare la configurazione globale (come me), è: 'git config --global --unset url." Https: // ".steadOf' –

+21

Puoi omettiamo anche '--global' e aggiungerà la configurazione al' .git/config' locale. – hsribei

2

Sulla base della risposta di @Sindre, ho scritto una piccola funzione di supporto in BASH che risiede nel mio file ~/.bashrc. Chiamalo come se fosse grunt, tranne che ora si chiama nngrunt. Godere!

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 
}