Domanda

Nota: mentre il caso d'uso descritto riguarda l'uso di sottomoduli all'interno di un progetto, lo stesso vale per un normale git clone di un repository su HTTP.

Ho un progetto sotto il controllo di Git. Vorrei aggiungere un sottomodulo:

git submodule add http://github.com/jscruggs/metric_fu.git vendor/plugins/metric_fu

Ma ottengo

...
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'

Ho configurato il mio HTTP_PROXY:

c:\project> echo %HTTP_PROXY%
http://proxy.mycompany:80

Ho anche un'impostazione Git globale per il proxy http:

c:\project> git config --get http.proxy
http://proxy.mycompany:80

Qualcuno ha ottenuto i recuperi HTTP per funzionare costantemente attraverso un proxy? La cosa davvero strana è che alcuni progetti su GitHub funzionano bene ( awesome_nested_set per esempio), ma altri fallire costantemente ( binari per esempio).

È stato utile?

Soluzione 3

Ciò che alla fine ha funzionato è stato l'impostazione della variabile di ambiente http_proxy. Avevo impostato HTTP_PROXY correttamente, ma a quanto pare git preferisce la versione minuscola.

Altri suggerimenti

Puoi anche impostare il proxy HTTP che Git utilizza nella proprietà di configurazione globale http.proxy:

git config --global http.proxy http://proxy.mycompany:80

Per eseguire l'autenticazione con il proxy:

git config --global http.proxy http://mydomain\\myusername:mypassword@myproxyserver:8080/

(Il credito va a @EugeneKulabuhov e @ JaimeReynoso per il formato di autenticazione.)

Ci sono già ottime risposte su questo. Tuttavia, ho pensato di aggiungere il chip poiché alcuni server proxy richiedono l'autenticazione con ID utente e password. A volte questo può essere su un dominio.

Quindi, ad esempio se la configurazione del server proxy è la seguente:

Server: myproxyserver
Port: 8080
Username: mydomain\myusername
Password: mypassword

Quindi, aggiungi al tuo .gitconfig file usando il seguente comando:

git config --global http.proxy http://mydomain\\myusername:mypassword@myproxyserver:8080

Non preoccuparti di https. Finché il server proxy specificato supporta http e https, sarà sufficiente una voce nel file di configurazione.

Puoi quindi verificare che il comando abbia aggiunto correttamente la voce al tuo cat .gitconfig file facendo <=>:

Alla fine del file vedrai una voce come segue:

[http]
    proxy = http://mydomain\\myusername:mypassword@myproxyserver:8080

Questo è tutto!

Sembra che tu stia usando una compilazione mingw di Git su Windows (o forse un altro di cui non ho sentito parlare). Esistono modi per eseguire il debug di questo: credo che tutto il lavoro del proxy http per git sia svolto da curl. Imposta questa variabile d'ambiente prima di eseguire git:

GIT_CURL_VERBOSE=1

Questo dovrebbe almeno darti un'idea di cosa sta succedendo dietro le quinte.

Se si desidera solo utilizzare il proxy su un repository specificato, non è necessario su altri repository. Il modo preferibile è l'opzione -c, --config <key=value> quando git clone un repository. per es.

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git --config "http.proxy=proxyHost:proxyPort"

Quando il tuo team di rete fa l'ispezione ssl riscrivendo i certificati, quindi usando un URL http anziché uno https, combinato con l'impostazione di questo var ha funzionato per me.

git config --global http.proxy http://proxy:8081

Potresti anche modificare il file .gitconfig situato nella directory% userprofile% sul sistema Windows ( blocco note% userprofile% .gitconfig ) o nella directory ~ sul sistema Linux (< em> vi ~ / .gitconfig ) e aggiungi una sezione http come di seguito.

Contenuto del file .gitconfig:

[http]
        proxy = http://proxy.mycompany:80

Questa è una vecchia domanda ma se sei su Windows, considera di impostare anche HTTPS_PROXY se stai recuperando tramite un URL https. Ha funzionato per me!

Per me git: // semplicemente non funziona attraverso il proxy sebbene https: // funzioni. Ciò ha causato un po 'di mal di testa perché stavo eseguendo script che tutti usavano git: // quindi non potevo semplicemente cambiarli tutti. Tuttavia ho trovato questo GEM

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

Non trovo né http.proxyGIT_PROXY_COMMAND funzionante per il mio proxy http autenticato. Il proxy non viene attivato in alcun modo. Ma trovo un modo per aggirare questo.

  1. Installa cavatappi o altre alternative che desideri.
  2. Crea un file di autenticazione. Il formato per authfile è: user_name:password e user_name, password è il nome utente e la password per accedere al proxy. Per creare un tale file, è sufficiente eseguire il comando in questo modo: echo "username:password" > ~/.ssh/authfile.

  3. Modifica ~/.ssh/config e assicurati che l'autorizzazione sia 644: chmod 644 ~/.ssh/config

Prendi github.com come esempio, aggiungi le seguenti righe a git@github.com:

Host    github.com
        HostName        github.com
        ProxyCommand    /usr/local/bin/corkscrew <your.proxy> <proxy port> %h %p <path/to/authfile>
        User            git

Ora ogni volta che fai qualcosa con <=>, utilizzerà automaticamente il proxy. Puoi fare facilmente la stessa cosa anche a Bitbucket .

Questo non è così elegante come altri approcci, ma funziona come un fascino.

Su Windows, se non si desidera inserire la password in .gitconfig nel testo normale, è possibile utilizzare

Ti autentica rispetto al proxy NTLM normale o persino a Windows e avvia il proxy localhost senza autenticazione.

Per farlo funzionare:

  • Installa Cntml
  • Configura Cntml in base alla documentazione per passare l'autenticazione proxy
  • Punta git sul tuo nuovo proxy localhost:

    [http]
        proxy = http://localhost:3128       # change port as necessary
    

Per me quello che ha funzionato è stato:

sudo apt-get install socat

Crea un file nel tuo $ BIN_PATH / gitproxy con:

#!/bin/sh 
_proxy=192.168.192.1 
_proxyport=3128 
exec socat STDIO PROXY:$_proxy:$1:$2,proxyport=$_proxyport

Non dimenticare di concedergli le autorizzazioni per l'esecuzione

chmod a+x gitproxy

Esegui i seguenti comandi per configurare l'ambiente:

export PATH=$BIN_PATH:$PATH
git config --global core.gitproxy gitproxy

Solo per pubblicare questo dato che è il primo risultato su Google, questo post sul blog che ho trovato risolve il problema per me aggiornando i certificati di arricciatura.

http://www.simplicidade.org/notes/archives/ 2011/06 / github_ssl_ca_errors.html

Installa proxy su git

comando

git config --global http.proxy http://user:password@domain:port

Esempio

git config --global http.proxy http://clairton:123456@proxy.clairtonluz.com.br:8080

Questo ha funzionato per me.

git config --global http.proxy proxy_user:proxy_passwd@proxy_ip:proxy_port

Ho avuto lo stesso problema, con una correzione leggermente diversa: RICOSTRUZIONE GIT CON SUPPORTO HTTP

Il protocollo git: non ha funzionato attraverso il mio firewall aziendale.

Ad esempio, questo è scaduto:

git clone git://github.com/miksago/node-websocket-server.git

curl github.com funziona bene, tuttavia, quindi so che la mia variabile di ambiente http_proxy è corretta.

Ho provato a utilizzare http, come di seguito, ma ho riscontrato un errore immediato.

git clone http://github.com/miksago/node-websocket-server.git

->>>  fatal: Unable to find remote helper for 'http' <<<-

Ho provato a ricompilare git in questo modo:

./configure  --with-curl --with-expat

ma ha ancora ricevuto l'errore fatale.

Alla fine, dopo diverse ore frustranti, ho letto il file di configurazione, e ho visto questo:

  

# Definisci CURLDIR = / foo / bar se i tuoi file di intestazione e libreria sono arricciati

     

# / foo / bar / include e / foo / bar / lib directory.

Allora mi sono ricordato che non avevo rispettato curl dalla fonte, e così è andato cercando i file di intestazione. Abbastanza sicuro, non sono stati installati. Questo era il problema. Make non si è lamentato dei file di intestazione mancanti. Così Non mi rendevo conto che l'opzione --with-curl non faceva nulla (è, in effetti, il valore predefinito nella mia versione di git).

Ho fatto quanto segue per risolverlo:

  1. Aggiunte le intestazioni necessarie per make:

    yum install curl-devel
    (expat-devel-1.95.8-8.3.el5_5.3.i386  was already installed).
    
  2. Rimosso /usr/local da git* (poiché voglio che la nuova installazione vivesse lì).

    Ho semplicemente rimosso /usr/local/share da /usr/local/libexec e expat

  3. Ho cercato le directory di inclusione contenenti i file di intestazione configure e <=>, e poi (poiché avevo letto attraverso <=>) le hanno aggiunte all'ambiente in questo modo:

    export CURLDIR=/usr/include 
    export EXPATDIR=/usr/include
    
  4. Ho funzionato <=> con le seguenti opzioni, che, ancora una volta, sono state descritte nel <=> file stesso, e sono state anche le impostazioni predefinite ma che diamine:

    git clone http://github.com/miksago/node-websocket-server.git
    Cloning into 'node-websocket-server'...
    * Couldn't find host github.com in the .netrc file, using defaults
    * About to connect() to proxy proxy.entp.attws.com port 8080
    *   Trying 135.214.40.30... * connected
    ...
    
  5. E ora <=> funziona con <=> tramite il mio firewall aziendale:

    <*>

puoi usare:

git config --add http.proxy http://user:password@proxy_host:proxy_port

Imposta Git credential.helper su wincred.

git config --global credential.helper wincred

Assicurati che ci sia solo 1 credential.helper

git config -l

Se è presente più di 1 e non è impostato su Wincred, rimuoverlo.

git config --system --unset credential.helper

Ora imposta il proxy senza password.

git config --global http.proxy http://<YOUR WIN LOGIN NAME>@proxy:80

Controlla che tutte le impostazioni che hai aggiunto abbiano un bell'aspetto ....

git config --global -l

Ora sei a posto!

Questo non è un problema con il tuo proxy. È un problema con github (o git). Fallisce anche per me su git-1.6.0.1 su Linux. Bug è già stato segnalato (da te no meno).

Assicurati di eliminare i tuoi pasticci, sono già su Google. Modifica: devo aver sognato, suppongo che non puoi eliminarli. Utilizzare Gist invece?

$ http_proxy è per http://github.com .... $ https_proxy è per https://github.com ...

Per Windows

Vai a > C: / Users / nome_utente / gitconfig

Aggiorna il file gitconfig con i dettagli di seguito

[http]

[https]

proxy = https://your_proxy:your_port

[http]

proxy = http://your_proxy:your_port

Come controllare il proxy e il numero di porta?

Internet Explorer - > Impostazioni - & Gt; Opzioni Internet - & Gt; Collegamenti - & Gt; Impostazioni LAN

Usa proxychains

proxychains git pull ...

aggiornamento: proxychains è fuori produzione, usa proxychains-ng invece.

Ho aggirato il proxy usando https ... alcuni proxy non controllano nemmeno https.

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

c:\git\meantest>git clone http://github.com/linnovate/mean.git
Cloning into 'mean'...
fatal: unable to access 'http://github.com/linnovate/mean.git/': Failed connect
to github.com:80; No error

c:\git\meantest>git clone https://github.com/linnovate/mean.git
Cloning into 'mean'...
remote: Reusing existing pack: 2587, done.
remote: Counting objects: 27, done.
remote: Compressing objects: 100% (24/24), done.
rRemote: Total 2614 (delta 3), reused 4 (delta 0)eceiving objects:  98% (2562/26

Receiving objects: 100% (2614/2614), 1.76 MiB | 305.00 KiB/s, done.
Resolving deltas: 100% (1166/1166), done.
Checking connectivity... done

Le risposte sopra hanno funzionato per me quando il mio proxy non ha bisogno di autenticazione. Se si utilizza un proxy che richiede l'autenticazione, è possibile provare CCProxy. Ho un piccolo tutorial su come impostarlo qui,

http: // blog. praveenkumar.co.in/2012/09/proxy-free-windows-xp78-and-mobiles.html

Sono stato in grado di spingere, tirare, creare nuovi repository. Tutto ha funzionato bene. Assicurati di fare una disinstallazione pulita e reinstallare la nuova versione se stai affrontando problemi con Git come ho fatto io.

Dato che molti hanno risposto, ma questo è solo per Winodws UTENTE che si trova dietro un proxy con autenticazione.

Reinstalla (prima non riuscita, non rimuovere).

Goto ->
**Windows**
1. msysgit\installer-tmp\etc\gitconfig
    Under [http]
        proxy = http://user:pass@url:port

**Linux**
1. msysgit\installer-tmp\setup-msysgit.sh
      export HTTP_PROXY="http://USER:PASS@proxy.abc.com:8080"

se hai un carattere speciale in user / pass usa url_encode

come @ user2188765 ha già sottolineato, prova a sostituire il protocollo git:// del repository con http[s]://. Vedi anche questa risposta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top