Usare un proxy per un solo repository Git
Imposta un proxy HTTP locale al repository, verifica la configurazione scelta da Git per l’URL remoto e rimuovi la sostituzione quando non serve più.
Non serve un proxy Git globale solo perché un progetto richiede una connessione diversa. Un checkout esistente ha una configurazione locale propria, quindi puoi mantenere la modifica in quel repository.
Questi esempi usano i comandi attuali git config set/get/unset. Directory del progetto, URL remoto e IP di documentazione sono segnaposto. Per provare un repository pubblico dove sono ammessi proxy pubblici, scegli un candidato dalla lista di proxy HTTP.
git -C project config set --local http.proxy http://203.0.113.10:8080
git -C project ls-remote origin
L’URL del proxy include lo schema di trasporto. Un remoto HTTPS può usare un normale proxy HTTP che supporta CONNECT; lo schema HTTPS del remoto non richiede di cambiare l’URL del proxy in HTTPS.
Controlla cosa ha scelto davvero Git
Se il risultato è inatteso, controlla il valore selezionato per l’URL remoto effettivo:
git -C project config get --show-origin \
--url=https://example.com/team/project.git http.proxy
Usa il tuo vero remoto HTTPS nella query. Git può avere impostazioni di sistema, utente, repository, riga di comando e specifiche per URL. Guardare solo un valore globale http.proxy può far perdere una regola più specifica. L’output dell’origine aiuta a identificare il file o la fonte da riga di comando del risultato.
L’impostazione locale si applica all’accesso HTTP da quel repository, non solo a un branch. Un repository con più remoti HTTP può quindi usarla per altri oltre a quello provato per primo. Esistono impostazioni HTTP specifiche per URL se serve una corrispondenza più ristretta.
Prima che esista il checkout
Per il clone iniziale, decidi se la sostituzione deve persistere; per limitarla a quella chiamata Git, usa:
git -c http.proxy=http://203.0.113.10:8080 \
clone https://example.com/team/project.git
La sostituzione da riga di comando non diventa da sola una voce permanente nel nuovo checkout. Imposta poi un valore locale se i fetch successivi devono usare quel percorso.
Un remoto SSH è un caso diverso
Un remoto che inizia con git@host: o ssh:// usa SSH. L’impostazione proxy HTTP di Git non lo trasforma in un trasferimento HTTP. Controlla il trasporto del remoto prima di sostituire un IP proxy funzionante solo perché un’operazione SSH continua a fallire.
Quando non vuoi più la sostituzione locale, rimuovi soltanto quella chiave:
git -C project config unset --local http.proxy
Rimuoverla lascia tornare applicabili le configurazioni di altre fonti. Non è un comando per cancellare tutte le impostazioni proxy della macchina.