Bower si installa usando solo https?


257

Sto cercando di impostare Bower su un server di build nel data center della nostra organizzazione, ma gitla porta 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].

C'è un interruttore o una preferenza che istruirà Bower ad eseguire il clone git usando httpspiuttosto che il gitprotocollo?

Ho guardato alla fonte, e considerato cambiando il codice di risoluzione di sostituire git://con https://, ma ho pensato di chiedere prima di andare a queste lunghezze.


Risposte:


629

Puoi fare in modo che git sostituisca il protocollo per te. Corri:

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

per usare il protocollo HTTPS invece di Git.


13
Mi sento davvero stupido. Ho continuato a provare la parte del comando prima di .insteadOf pensando che @Sindre ci stesse dicendo di usare git invece di git. Buon dolore questi comandi inglesi.
grido il

99
Se qualcun altro applica questa risposta e poi si chiede in seguito come git config --global --unset url."https://".insteadOf
annullare

21
Puoi anche omettere --globale aggiungerà la configurazione al locale .git/config.
Helder S Ribeiro,

24
Sul computer Windows, il file di configurazione globale è .gitconfig nella cartella principale dell'utente, ad esempio C: \ Users [nome utente]. Tuttavia, se% HOME% non è definito, git utilizzerà% HOMEDRIVE% mentre git da Bower utilizzerà invece% USERPROFILE%. Considerando che queste due variabili potrebbero essere diverse. Sul mio computer, uno è U :, l'altro è C: \ Users \ myusername. Quindi il pergolato usava ancora git: // qualunque cosa io abbia provato. Mi ci è voluto un po 'per capirlo. Quindi scrivilo nel caso qualcuno cada nella stessa situazione.
AnthonyY,

2
@VincentGauthier In Windows, avvia Proprietà del sistema -> Avanzate -> Variabili d'ambiente -> Variabili di sistema -> Nuovo -> Aggiungi una variabile denominata HOME e imposta il suo valore sul percorso desiderato
Nick

2

Sulla base della risposta di @Sindre, ho scritto una piccola funzione di supporto in BASH che risiede nel mio ~/.bashrcfile. Chiamalo come faresti grunt, tranne ora che 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 "$@"

    # 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
}

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.