Instalação do Bower usando apenas https?


257

Estou tentando configurar o Bower em um servidor de compilação no datacenter de nossa organização, mas gita porta não parece estar aberta no firewall do datacenter. Eu posso usar o cliente de linha de comando git para clonar via https://[repo], mas não git://[repo].

Existe uma opção ou preferência que instruirá o caramanchão a executar o git clone usando, httpsem vez do gitprotocolo?

Eu olhei para a fonte, e pensou em mudar o código de resolução para substituir git://com https://, mas eu percebi que eu ia perguntar antes de eu ir para os comprimentos.


Respostas:


629

Você pode fazer o git substituir o protocolo para você. Apenas corra:

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

usar o protocolo HTTPS em vez do Git.


13
Eu me sinto muito idiota. Continuei tentando a parte do comando antes de .insteadOf pensando que @Sindre estava nos dizendo para usar o git em vez do git. Que pena esses comandos ingleses.
Grito #

99
Caso outra pessoa aplique esta resposta e, depois, se pergunte como recuperar essa alteração na configuração global (como eu), é:git config --global --unset url."https://".insteadOf
ryan_effectiveui

21
Você também pode omitir --globale isso adicionará a configuração ao local .git/config.
Helder S Ribeiro

24
Na máquina Windows, o arquivo de configuração global é .gitconfig na pasta inicial do usuário, por exemplo, C: \ Users [nome de usuário]. No entanto, se% HOME% não estiver definido, o git usará% HOMEDRIVE% enquanto o git do bower usará% USERPROFILE%. Enquanto essas duas variáveis ​​podem ser diferentes. Na minha máquina, um é U :, o outro é C: \ Users \ myusername. Então o caramanchão ainda usava git: // o que eu tentasse. Levei um tempo para descobrir isso. Portanto, anote-a no caso de alguém cair na mesma situação.
AnthonyY

2
@VincentGauthier No Windows, o lançamento Propriedades do Sistema -> Avançado -> Variáveis de Ambiente -> SystemVariables -> Novo -> Adicionar uma variável chamada HOME e defina seu valor para o seu caminho desejado
Nick

2

Com base na resposta do @Sindre, escrevi uma pequena função auxiliar no BASH, que fica no meu ~/.bashrcarquivo. Chame como faria grunt, exceto agora que é chamado nngrunt. Aproveitar!

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
}

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.