trabalhar - git push




Obtendo o git para trabalhar com um servidor proxy (12)

Como obtenho o git para usar um servidor proxy?

Eu preciso verificar o código de um servidor git, ele mostra "Pedido expirou" a cada vez. Como faço para contornar isso?

Como alternativa, como posso definir um servidor proxy?


Além dessas respostas, achei útil considerar esses dois pontos:

Pode ser necessário impor um esquema de autenticação:

[http]
    # https://github.com/git/git/blob/master/Documentation/config.txt
    proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm

Além disso, normalmente com o esquema de autenticação NTLM, pode ser necessário fornecer explicitamente o domínio do AD.

No git bash:

echo %userdomain%

E atualize o http.proxy de acordo:

git config --global http.proxy http://DOMAIN\\proxyuser:[email protected]:8080

De qualquer forma, a investigação pode ser ajudada pela adição de logs CURL:

export GIT_CURL_VERBOSE=1

Comando para usar:

git config --global http.proxy http://proxyuser:[email protected]:8080
  • altere o proxyuser para o seu usuário proxy
  • proxypwd para sua senha proxy
  • altere proxy.server.com para o URL do seu servidor proxy
  • altere 8080 para a porta proxy configurada no seu servidor proxy

Se você decidir a qualquer momento para redefinir este proxy e trabalhar sem proxy:

Comando para usar:

git config --global --unset http.proxy

Finalmente, para verificar o proxy atualmente definido:

git config --global --get http.proxy

Defina uma variável de sistema denominada http_proxy com o valor de ProxyServer:Port . Essa é a solução mais simples. Respectivamente, use https_proxy como daefu apontado nos comentários.

A configuração de gitproxy (como sleske menciona) é outra opção, mas isso requer um "comando", que não é tão simples quanto a solução acima.

Referências: http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html


Depois de tentar incansavelmente cada solução nesta página, o meu trabalho era usar a chave SSH!

  1. Abra o Git Bash
  2. $ ssh-keygen.exe -t rsa -C
  3. Abra seu provedor Git (Github, Bitbucket, etc.)
  4. Adicione copie o conteúdo do arquivo id_rsa.pub na página de entrada do provedor Git (verifique seu perfil)

Eu segui a maioria das respostas recomendadas aqui. Primeiro recebi o seguinte erro:

fatal: não é possível acessar ' https://github.com/folder/sample.git/ ': schannel: next Falha de InitializeSecurityContext: erro desconhecido (0x80092012) - A função de revogação não pôde verificar a revogação do certificado.

Então eu tentei o seguinte comando por @Salim Hamidi

git config --global http.proxy http://proxyuser:[email protected]:8080

Mas recebi o seguinte erro:

fatal: não é possível acessar ' https://github.com/folder/sample.git/ ': Código HTTP recebido 407 do proxy após CONNECT

Isso pode acontecer se o servidor proxy não puder verificar o certificado SSL. Portanto, queremos ter certeza de que a verificação ssl está desativada (não recomendada para sites não confiáveis), por isso, executei as etapas a seguir recomendadas pelo @Arpit, mas com pequenas alterações:

1. Primeiro, certifique-se de remover quaisquer configurações de proxy anteriores:

git config --global --unset http.proxy

2.Então, liste e obtenha o conteúdo do gitconfig

git config --list --show-origin

3.Last atualize o conteúdo do arquivo gitconfig como abaixo:

[http]
sslCAInfo = C:/yourfolder/AppData/Local/Programs/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
proxy = http://proxyuser:[email protected]:8080
sslverify = false
[https]
proxy = http://proxyuser:[email protected]:8080
sslverify = false

Eu tentei todas as respostas acima e nada funcionou para mim, como havia um problema de codificação de senha de proxy.

Este comando funcionou:

git config --global http-proxy http://[email protected]:PortNumber 

Não insira a senha em seu comando. Ele pedirá dinamicamente quando você tentar se conectar a qualquer repositório do git.


Para o protocolo git (git: // ...), instale o socat e escreva um script como:

#!/bin/sh

exec socat - socks4:your.company.com:$1:$2

torne-o executável, coloque-o em seu caminho e, em seu ~/.gitconfig defina core.gitproxy como o nome desse script.


Para usuários do windows: se git config ou set http_proxy= não funcionar, esta resposta pode ajudar:

substitua o protocolo git:// do repositório git por http:// . Note que você terá que configurar o http_proxy primeiro, de qualquer maneira.


Se você estiver usando o Ubuntu, faça o seguinte ...

Passo 1: Instale o saca-rolhas

$ sudo apt-get install corkscrew

Passo 2: Escreva um script chamado git-proxy.sh e adicione o seguinte

#!/bin/sh

exec corkscrew <name of proxy server> <port> $*

# <name_of_proxy_server> and <port> are the ip address and port of the server
# e.g. exec corkscrew 192.168.0.1 808 $*

Etapa 3: Torne o script executável

$ chmod +x git-proxy.sh

Etapa 4: configurar o comando de proxy para o GIT definindo a variável de ambiente

$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"

Agora use os comandos git, como

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

Se você tiver tsocks ou proxychains instalados e configurados, você pode

$ tsocks git clone <you_repository>

ou

$ proxychains git clone <you_repository>

para torná-lo mais curto, eu criei um link simbólico /usr/bin/p para proxychains , então eu posso usá-lo assim

p git clone <you_repository>

e eu posso usá-lo para representar qualquer comando,

p <cmd-need-be-proxied>

a propósito, proxychains não é atualizado por um longo tempo, você pode querer tentar proxychians-ng


aqui está a configuração de proxy

git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>

Configurando o proxy git no terminal

E se

  • você não quer configurar o proxy para cada um dos seus projetos git manualmente, um por um
  • sempre quer usar o mesmo proxy para todos os seus projetos

Defina globalmente uma vez

git config --global http.proxy username:[email protected]_url:proxy_port
git config --global https.proxy username:[email protected]_url:proxy_port

se você quiser definir o proxy para apenas um projeto git (pode haver algumas situações em que você pode não querer usar o mesmo proxy ou qualquer proxy para algumas conexões git)

//go to project root
cd /bla_bla/project_root
//set proxy for both http and https
git config http.proxy username:[email protected]_url:proxy_port
git config https.proxy username:[email protected]_url:proxy_port

se você quiser exibir as configurações atuais do proxy

git config --list 

se você quiser remover o proxy globalmente

git config --global --unset http.proxy
git config --global --unset https.proxy

se você quiser remover o proxy para apenas uma raiz do git

//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy




proxy