Nota: enquanto o caso de uso descrito é sobre o uso de submódulos dentro de um projeto, o mesmo se aplica a um normal git clone
de um repositório por HTTP.
Eu tenho um projeto sob controle do Git. Eu gostaria de adicionar um submódulo:
git submodule add http://github.com/jscruggs/metric_fu.git vendor/plugins/metric_fu
Mas eu entendo
...
got 1b0313f016d98e556396c91d08127c59722762d0
got 4c42d44a9221209293e5f3eb7e662a1571b09421
got b0d6414e3ca5c2fb4b95b7712c7edbf7d2becac7
error: Unable to find abc07fcf79aebed56497e3894c6c3c06046f913a under http://github.com/jscruggs/metri...
Cannot obtain needed commit abc07fcf79aebed56497e3894c6c3c06046f913a
while processing commit ee576543b3a0820cc966cc10cc41e6ffb3415658.
fatal: Fetch failed.
Clone of 'http://github.com/jscruggs/metric_fu.git' into submodule path 'vendor/plugins/metric_fu'
Eu tenho meu HTTP_PROXY configurado:
c:\project> echo %HTTP_PROXY%
http://proxy.mycompany:80
Eu tenho até uma configuração global do Git para o proxy http:
c:\project> git config --get http.proxy
http://proxy.mycompany:80
Alguém conseguiu buscas HTTP para trabalhar consistentemente através de um proxy? O que é realmente estranho é que alguns projetos no GitHub funcionam bem ( awesome_nested_set
por exemplo), mas outros falham consistentemente ( trilhos, por exemplo).
git
proxy
git-submodules
James A. Rosen
fonte
fonte
--global
paragit config
.Respostas:
Você também pode definir o proxy HTTP que o Git usa na propriedade de configuração global
http.proxy
:Para autenticar com o proxy:
(O crédito vai para @EugeneKulabuhov e @JaimeReynoso pelo formato de autenticação.)
fonte
git config --global http.proxy http://mydomain\\myusername:mypassword@myproxyserver:8080
a sintaxe a fornecer nome de usuário / senhaJá existem ótimas respostas sobre isso. No entanto, pensei em fazer o chip, pois alguns servidores proxy exigem que você se autentique com um ID de usuário e senha. Às vezes, isso pode estar em um domínio.
Portanto, por exemplo, se a configuração do servidor proxy for a seguinte:
Em seguida, adicione ao seu
.gitconfig
arquivo usando o seguinte comando:Não se preocupe
https
. Enquanto o servidor proxy especificado suportar http e https, uma entrada no arquivo de configuração será suficiente.Você pode verificar se o comando adicionou a entrada ao seu
.gitconfig
arquivo com êxito, executandocat .gitconfig
:No final do arquivo, você verá uma entrada da seguinte maneira:
É isso aí!
fonte
%40
e ele funcionará.O que finalmente funcionou foi definir a
http_proxy
variável de ambiente. Eu havia definidoHTTP_PROXY
corretamente, mas aparentemente o git gosta mais da versão em minúscula.fonte
http.proxy
na configuração global do Git funciona? Na sua pergunta, você definehttp.proxy
na configuração do repositório local.https_proxy
https.proxy
parecia trabalho para mim como eu estava usando https sobre githubhttps_proxy
isso, significa quehttps
não estava usandohttp
qual pergunta é sobre.Parece que você está usando uma compilação do Git no Windows (ou possivelmente outra que eu não tenha ouvido falar). Existem maneiras de depurar isso: acredito que todo o trabalho de proxy http para o git seja feito por curl. Defina esta variável de ambiente antes de executar o git:
Isso deve, pelo menos, dar uma idéia do que está acontecendo nos bastidores.
fonte
Se você deseja apenas usar proxy em um repositório especificado, não precisa de outros repositórios. A maneira preferível é a
-c, --config <key=value>
opção quando você égit clone
um repositório. por exemplofonte
--config
várias vezes, por exemplo, quando você também deseja definirhttps.proxy
.Quando sua equipe de rede faz a inspeção SSL reescrevendo certificados, o uso de um URL http em vez de um https, combinado com a configuração dessa var, funcionou para mim.
fonte
Você também pode editar o arquivo .gitconfig localizado no diretório% userprofile% no sistema Windows ( bloco de notas% userprofile% .gitconfig ) ou no diretório ~ no sistema Linux ( vi ~ / .gitconfig ) e adicionar uma seção http como abaixo.
Conteúdo do arquivo .gitconfig:
fonte
Para mim, o git: // simplesmente não funciona através do proxy, embora o https: // funcione. Isso causou um pouco de dor de cabeça, porque eu estava executando scripts que todos usavam git: //, então não pude facilmente mudar todos eles. No entanto, eu encontrei este GEM
fonte
Essa é uma pergunta antiga, mas se você estiver no Windows, considere a configuração de HTTPS_PROXY também se estiver recuperando por meio de um URL https. Trabalhou para mim!
fonte
https_proxy
a variável de ambiente sozinha (nenhuma opção git global ou repo proxy definida) no meu caso (msysgit no Windows XP).Não encontro
http.proxy
nemGIT_PROXY_COMMAND
trabalho para o meu proxy http autenticado. O proxy não é acionado de nenhuma maneira. Mas acho uma maneira de contornar isso.Crie um arquivo de autenticação. O formato para
authfile
é:,user_name:password
euser_name
,password
é seu nome de usuário e senha para acessar seu proxy. Para criar tal arquivo um, simplesmente execute o comando como este:echo "username:password" > ~/.ssh/authfile
.Edite
~/.ssh/config
e verifique se a permissão é644
:chmod 644 ~/.ssh/config
Tome o github.com como exemplo, adicione as seguintes linhas em
~/.ssh/config
:Agora, sempre que você fizer alguma coisa
[email protected]
, ele usará o proxy automaticamente. Você pode facilmente fazer o mesmo com o Bitbucket também.Isso não é tão elegante quanto outras abordagens, mas funciona como um encanto.
fonte
No Windows, se você não quiser colocar sua senha em .gitconfig em texto sem formatação, poderá usar
Ele o autentica no proxy normal ou mesmo no Windows NTLM e inicia o proxy localhost sem autenticação.
Para executá-lo:
Aponte git para seu novo proxy localhost:
fonte
Para mim, o que funcionou foi:
Crie um arquivo dentro do seu $ BIN_PATH / gitproxy com:
Não se esqueça de dar permissões de execução
Execute os seguintes comandos para configurar o ambiente:
fonte
git://
URLs de protocolo, para aqueles (raros) servidores git que não suportam https. Também funciona no Windows, com um arquivo em lotes apropriado e um socat para o Windows.Configurar proxy para git
comando
exemplo
fonte
Defina Git credential.helper como wincred.
Verifique se há apenas 1 credencial.helper
Se houver mais de 1 e não estiver definido como wincred, remova-o.
Agora defina o proxy sem senha.
Verifique se todas as configurações que você adicionou parecem boas ....
Agora você está pronto para ir!
fonte
Eu tive o mesmo problema, com uma correção ligeiramente diferente: RECONSTRUINDO GIT COM SUPORTE HTTP
O
git:
protocolo não funcionou através do meu firewall corporativo.Por exemplo, este tempo excedeu o tempo limite:
curl github.com
funciona muito bem, então eu sei que minhahttp_proxy
variável de ambiente está correta.Tentei usar
http
, como abaixo, mas recebi um erro imediato.Tentei recompilar o git da seguinte forma:
mas ainda tenho o erro fatal.
Finalmente, depois de várias horas frustrantes, li o arquivo de configuração e vi o seguinte:
Lembrei-me então de que não havia cumprido o
curl
código-fonte e fui procurar os arquivos de cabeçalho. Com certeza, eles não foram instalados. Esse foi o problema. Make não reclamou dos arquivos de cabeçalho ausentes. Portanto, não percebi que a--with-curl
opção não fez nada (na verdade, é o padrão na minha versão dogit
).Fiz o seguinte para corrigi-lo:
Adicionados os cabeçalhos necessários para o make:
Removido
git
de/usr/local
(como eu quero que a nova instalação viva lá).I simplesmente removida
git*
de/usr/local/share
e/usr/local/libexec
Procurei os diretórios de inclusão que contêm os arquivos
curl
e doexpat
cabeçalho e , em seguida (porque eu havia lidoconfigure
), os adicionei ao ambiente da seguinte maneira:Funcionou
configure
com as seguintes opções, que, novamente, foram descritas noconfigure
próprio arquivo e também eram os padrões, mas que diabos:E agora
http
funcionagit
através do meu firewall corporativo:fonte
Apenas para postar isso, pois é o primeiro resultado no Google, este post que encontrei resolve o problema para mim atualizando os certificados de curl.
http://www.simplicidade.org/notes/archives/2011/06/github_ssl_ca_errors.html
fonte
git config --global http.sslcainfo NEW_CERTS_BUNDLE.crt
como descrito em: stackoverflow.com/a/8248484/98528 fez isso por mim! Obrigado!Isso funcionou para mim.
fonte
você pode usar:
fonte
Usar proxychains
update: proxychains foi descontinuado, use proxychains-ng .
fonte
Para Windows
Ir para -> C: / Users / user_name / gitconfig
Atualize o arquivo gitconfig com os detalhes abaixo
[http]
[https]
[http]
Como verificar seu número de proxy e porta?
Internet Explorer -> Configurações -> Opções da Internet -> Conexões -> Configurações da LAN
fonte
O método abaixo funciona para mim:
fonte
Vale ressaltar: a maioria dos exemplos na rede mostra exemplos como
Parece que, se o seu proxy precisar de autenticação, você deve deixar a senha da empresa no git-config. O que não é muito legal.
Mas, se você acabou de configurar o usuário sem senha:
O Git parece (pelo menos na minha máquina Windows sem o auxiliar de credenciais) reconhecer isso e solicitar a senha do proxy no repo-access.
fonte
Este não é um problema com seu proxy. É um problema com o github (ou git). Ele falha para mim no git-1.6.0.1 no linux também. O bug já foi relatado (por você não menos).
Certifique-se de excluir seus pastéis, eles já estão no google. Edit: Deve ter sonhado, acho que você não pode excluí-los. Usar Gist ?
fonte
$ http_proxy é para http://github.com .... $ https_proxy é para https://github.com ...
fonte
As respostas acima funcionaram para mim quando meu proxy não precisa de autenticação. Se você estiver usando um proxy que requer autenticação, tente o CCProxy. Eu tenho um pequeno tutorial sobre como configurá-lo aqui,
http://blog.praveenkumar.co.in/2012/09/proxy-free-windows-xp78-and-mobiles.html
Consegui empurrar, puxar, criar novos repositórios. Tudo funcionou muito bem. Certifique-se de fazer uma desinstalação limpa e reinstalar a nova versão, se você estiver enfrentando problemas com o Git, como eu fiz.
fonte
como @ user2188765 já apontou, tente substituir o
git://
protocolo do repositório porhttp[s]://
. Veja também esta respostafonte
Eu contornei o proxy usando https ... alguns proxies nem sequer verificam https.
fonte
Como isso foi respondido por muitos, mas isso é apenas para o USUÁRIO do Winodws, que está por trás do proxy com autenticação.
Reinstalação (primeira falha, não remova).
se você tiver algum caractere especial em user / pass, use url_encode
fonte