การทำให้ Git ทำงานกับพร็อกซีเซิร์ฟเวอร์ - ล้มเหลวด้วย“ คำขอหมดเวลา”


918

ฉันจะทำให้ Git ใช้พร็อกซีเซิร์ฟเวอร์ได้อย่างไร

ฉันต้องตรวจสอบรหัสจากเซิร์ฟเวอร์ Git แต่มันแสดง "คำขอหมดเวลา" ทุกครั้ง ฉันจะรับสิ่งนี้ได้อย่างไร

ฉันจะตั้งค่าพร็อกซีเซิร์ฟเวอร์ได้อย่างไร


นี่จะไม่ใช่รายการกำหนดค่าไคลเอนต์ git หรือไม่ สิ่งเดียวที่ดูเหมือนจะเกี่ยวข้องกับ cmd.exe คือไคลเอนต์ git อาจอนุญาตให้คุณระบุพร็อกซีในตัวแปรสภาพแวดล้อม
ไมเคิลเสี้ยน

ฉันได้แก้ไขคำถามต้นฉบับเพื่อลบการอ้างอิง Windows ทั้งหมดเนื่องจากปัญหานี้เฉพาะสำหรับคอมไพล์
PlagueHammer

3
โปรดทราบว่าคุณจะสามารถตั้งค่าพร็อกซีต่อ git repo url!
VonC


3
คำตอบส่วนใหญ่ในคำถามนี้เป็นเรื่องเกี่ยวกับพร็อกซี HTTP หากคุณมีพร็อกซี่ถุงเท้าดูคำถามนี้สำหรับ HTTP / S โปรโตคอลและหนึ่งนี้สำหรับคอมไพล์: // โปรโตคอล
ผู้ใช้

คำตอบ:


1634

คำสั่งที่จะใช้:

git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
  • เปลี่ยนproxyuserเป็นผู้ใช้พร็อกซีของคุณ
  • เปลี่ยนproxypwdเป็นรหัสผ่านพร็อกซีของคุณ
  • เปลี่ยนproxy.server.comเป็น URL ของพร็อกซีเซิร์ฟเวอร์ของคุณ
  • เปลี่ยน8080เป็นพอร์ตพร็อกซีที่กำหนดค่าบนพร็อกซีเซิร์ฟเวอร์ของคุณ

โปรดทราบว่าสิ่งนี้ใช้ได้กับทั้ง repos http และ https

หากคุณตัดสินใจที่จะรีเซ็ตพร็อกซีนี้ในเวลาใดก็ได้และทำงานโดยไม่ใช้พร็อกซี:

คำสั่งที่จะใช้:

git config --global --unset http.proxy

ในที่สุดการตรวจสอบพร็อกซีที่ตั้งค่าในปัจจุบัน:

git config --global --get http.proxy

15
ขอบคุณซาลิม ฉันทำงานได้โดยไม่ต้อง proxyuser: proxypwd ใน URL
Kwex

11
ขอบคุณเพื่อน. สำหรับฉันมันคือการรับรองความถูกต้องตาม NTLM และเพียงแค่อัปเดต. gitconfig ของฉันไม่ทำงาน :( ดังนั้นฉันต้องได้ CNTLM ซึ่งใช้การ authetication NTLM ทั้งหมดที่ฉันต้องทำคือชี้ CNTLM ของฉันไปที่พร็อกซีเซิร์ฟเวอร์เครือข่ายของฉัน ตัวจัดการอัปเดต (เช่น yum, apt-get หรือ ssh) ไปยังโลคัลพร็อกซีในกรณีของการดำเนินการคอมไพล์เช่น clone ให้ดึง http.proxy เป็นพร็อกซีที่ตั้งค่าไว้ในเครื่องของฉันกับเซิร์ฟเวอร์ในระบบ
Mayur Nagekar

9
สวัสดีฉันจะตั้งค่า proxypass อย่างไรหากมีอักขระ "@" อยู่ ฉันรู้ว่าฉันต้องทำตัวละครนี้ แต่ฉันไม่รู้วิธี .. ขอบคุณ
patricK

13
@patricK คุณสามารถใช้%40แทน@สตริงชื่อผู้ใช้ / รหัสผ่านแม้ว่าฉันจะไม่ได้ทดสอบตัวเอง หวังว่ามันจะช่วย :-)
Sourav Ghosh

14
@patricK ฉันสามารถยืนยันได้ว่าใช้% 40 เพื่อทดแทนสำหรับ @ works ดูเหมือนว่าอักขระพิเศษไม่ทำงานคุณควรลองใช้การเข้ารหัส URL การเข้ารหัสพบได้ที่นี่: w3schools.com/tags/ref_urlencode.asp
Jon

133

สิ่งนี้ใช้ได้กับฉันใน windows XP หลังไฟร์วอลล์ขององค์กร

ฉันไม่จำเป็นต้องติดตั้งพรอกซีท้องถิ่นหรือซอฟต์แวร์อื่นใดนอกจาก git v1.771 จากhttp://code.google.com/p/msysgit/downloads/list?can=3

$ git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
$ git config --system http.sslcainfo /bin/curl-ca-bundle.crt
$ git remote add origin https://mygithubuser:mygithubpwd@github.com/repoUser/repoName.git
$ git push origin master

proxyuser = ผู้ใช้พร็อกซี่ที่ฉันได้รับมอบหมายจากแผนกไอทีของเราในกรณีของฉันมันเป็นผู้ใช้ windows เดียวกับที่ฉันใช้ในการเข้าสู่ระบบพีซีของฉันผู้ใช้ Active Directory

proxypwd = รหัสผ่านของผู้ใช้พร็อกซีของฉัน

proxy.server.com:8080 = ชื่อพร็อกซีและพอร์ตฉันได้รับจากแผงควบคุมตัวเลือกอินเทอร์เน็ตการเชื่อมต่อปุ่มการตั้งค่า Lan ปุ่มขั้นสูงภายในส่วนพร็อกซีเซิร์ฟเวอร์ใช้ชื่อเซิร์ฟเวอร์และพอร์ตในแถวแรก (http) .

mygithubuser = ผู้ใช้ที่ฉันใช้เพื่อเข้าสู่ระบบ github.com

mygithubpwd = รหัสผ่านสำหรับผู้ใช้ github.com ของฉัน

repoUser = เจ้าของผู้ใช้ repo

repoName = ชื่อของ repo


2
ไชโยขอบคุณ! git config --global http.sslcainfo MY_NEW_CERTS_BUNDLE.crtรวมถึงใบรับรองที่ดาวน์โหลดตามที่อธิบายไว้ในsimplicidade.org/notes/archives/2011/06/… (ขอบคุณ: stackoverflow.com/a/7206627/98528 ) ทำเพื่อฉัน!
akavel

3
ดูเหมือนว่าจะทำงานให้ฉัน แต่คอมไพล์ยังไม่ทำงานเมื่อฉันขอให้โคลนที่เก็บโดยใช้git://โปรโตคอล
Ajedi32

3
การชี้แจงข้อมูลของ pablolic สองสามประการขึ้นอยู่กับสิ่งที่ฉันใช้งานได้: 1) หาก proxyuser คือการเข้าสู่ระบบ Windows ให้ออกจากโดเมน AD เพียงแค่ใส่ชื่อผู้ใช้ที่ไม่มีโดเมน 2) ช่องว่างใน proxypwd ควรเข้ารหัสเป็น "+" เช่น "รหัสผ่านของฉัน" ควรป้อนเป็น "รหัสผ่านของฉัน"
Simon Tewsi

2
@ EdmundYeung99: ฉันขอแนะนำให้แทนที่สัญลักษณ์ @ ด้วย% 40 ยังไม่ได้ลอง แต่ฉันเชื่อว่าเป็นการเข้ารหัส URL มาตรฐาน
Simon Tewsi

2
@demongolem: ฉันสงสัยว่าคุณอาจต้องเข้ารหัส URL ของรหัสผ่าน (ยังไม่ได้ลองนี่เป็นเพียงการเดาที่ได้รับการศึกษา) ดูคอลัมน์ UrlEncoded ในตารางในคำตอบต่อไปนี้: stackoverflow.com/a/11236038/216440 ในกรณีของคุณที่อาจหมายถึงการแทนที่ $ ด้วย% 24
Simon Tewsi

52

ตั้งค่าตัวแปรระบบการตั้งชื่อที่มีค่าของhttp_proxy ProxyServer:Portนั่นคือทางออกที่ง่ายที่สุด ใช้https_proxyตามที่ daefu ชี้ให้เห็นในความคิดเห็น

การตั้งค่า gitproxy (ดังที่กล่าวไว้ใน sleske) เป็นอีกทางเลือกหนึ่ง แต่ต้องใช้คำสั่ง "" ซึ่งไม่ตรงไปตรงมาเหมือนกับวิธีแก้ไขปัญหาข้างต้น

ข้อมูลอ้างอิง: http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html


10
หรือใช้ 'https_proxy' หากคุณกำลังเชื่อมต่อกับที่เก็บข้อมูล https
daefu

1
@daefu: ไม่แน่ใจว่าคุณต้องตั้งค่า https_proxy ฉันเชื่อมต่อกับที่เก็บ https และทำตามขั้นตอนแรกของคำแนะนำของ pablolic (เช่นการเพิ่ม http.proxy ไปยังไฟล์ git config) นั่นคือทั้งหมดที่ฉันต้องการ
Simon Tewsi

3
https_proxy ถูกต้องสำหรับฉัน การตั้งค่าเฉพาะ http_proxy ไม่อนุญาตให้โคลน repo HTTPS
explunit

@daefu +1 สิ่งนี้สามารถใช้ได้กับ widows github - คำถามที่เกี่ยวข้อง: stackoverflow.com/questions/16216176/…
blue-sky

4
@SimonTewsi @explunit ขณะตั้งค่าตัวแปรสภาพแวดล้อมhttp_proxyจำเป็นสำหรับ HTTP URL และhttps_proxyจำเป็นสำหรับ HTTPS URL อีกวิธีหนึ่งสามารถตั้งค่าall_proxyสำหรับ URL ทั้งหมด ดูENVIRONMENTในส่วนขด (1) อย่างไรก็ตามในขณะที่การตั้งค่าตัวเลือก git-config http.proxyจะใช้สำหรับทั้ง HTTP และ HTTPS URL ดูhttp.proxyในGit-config (1)
Susam Pal

43

หากวิธีบรรทัดคำสั่งในการกำหนดค่าพร็อกซีเซิร์ฟเวอร์ของคุณไม่ทำงานคุณสามารถแก้ไข. gitconfig (ในรูทโปรไฟล์ของคุณซึ่งอาจซ่อนทั้งใน C: \ Documents และ Settings และในไดรฟ์เครือข่าย) และเพิ่มสิ่งนี้ :

[http]
    proxy = http://username:password@proxy.at.your.org:8080

แม้ว่า YMMV จะครอบคลุมเฉพาะขั้นตอนแรกของการกำหนดค่าบรรทัดคำสั่งเท่านั้น คุณอาจต้องแก้ไขการตั้งค่าระบบคอมไพล์ด้วยและฉันก็ไม่รู้ว่าพวกเขาซ่อนอะไรอยู่


1
"คุณอาจต้องแก้ไขการตั้งค่าระบบคอมไพล์ด้วย". ไม่ปกติ การกำหนดค่าระบบและผู้ใช้รวมกัน การตั้งค่าพร็อกซีในหนึ่งในสองควรจะเพียงพอ
sleske

ในกรณีของฉันมันตั้งอยู่บนเครื่อง Windows ของฉันใน [git home] \ etc \ gitconfig - หลังจากแก้ไขมันใช้งานได้เหมือนมีเสน่ห์!
Barmaley Red Star

สิ่งนี้มีประโยชน์อย่างยิ่งหากบรรทัดคำสั่งไม่ชอบรหัสผ่านของคุณเนื่องจากอักขระพิเศษ
จุดเริ่มต้น

37

เพื่อเป็นทางเลือกแทนการใช้git config --global http.proxy address:portคุณสามารถตั้งค่าพร็อกซีบนบรรทัดคำสั่ง:

git -c "http.proxy=address:port" clone https://...

ข้อดีคือไม่ได้ตั้งค่าพร็อกซีอย่างต่อเนื่อง ภายใต้ Bash คุณอาจตั้งชื่อแทน:

alias git-proxy='git -c "http.proxy=address:port"'

22

หากคุณใช้อูบุนตูให้ทำสิ่งต่อไปนี้ ...

ขั้นตอนที่ 1: ติดตั้งเกลียว

$ sudo apt-get install corkscrew

ขั้นตอนที่ 2: เขียนสคริปต์ชื่อ git-proxy.sh และเพิ่มรายการต่อไปนี้

#!/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 $*

ขั้นตอนที่ 3: ทำให้สคริปต์ทำงานได้

$ chmod +x git-proxy.sh

ขั้นตอนที่ 4: ตั้งค่าคำสั่งพร็อกซีสำหรับ GIT โดยการตั้งค่าตัวแปรสภาพแวดล้อม

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

ตอนนี้ใช้คำสั่ง git เช่น

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

คุณอาจจะใช้แทน"$@" $*ดูคู่มือเชลล์ของคุณสำหรับรายละเอียดเพิ่มเติม
Hynek -Pichi- Vychodil

15

ประสบปัญหาเดียวกันเนื่องจากมี.gitconfigไฟล์หลายไฟล์ใน windows ทำตามขั้นตอนด้านล่างเพื่อแก้ไขปัญหาเดียวกัน:

ขั้นตอนที่ 1:เปิด Git BASH

ขั้นตอนที่ 2:ค้นหา.gitconfigดำเนินการคำสั่งต่อไปนี้:

git config --list --global --show-origin

ขั้นตอนที่ 3:คัดลอกเนื้อหาด้านล่างใน.gitconfig:

[http]
    proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
    sslverify = false
[https]
    proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
    sslverify = false
[url "http://github.com/"]
    insteadOf = git://github.com/

[user]
    name = Arpit Aggarwal
    email = aggarwalarpit.89@gmail.com

12

ลองใส่สิ่งต่อไปนี้ในไฟล์ ~ / .gitconfig:

[http]
    proxy = http://proxy:8080
[https]
    proxy = http://proxy:8080
[url "https://"]
    insteadOf = git://

1
ฉันลองทุกอย่างด้านบน มันไม่ได้จนกว่าฉันจะเพิ่มรายการ https ที่แสดงไว้ที่นี่ว่าฉันสามารถทำงานได้
Brent Fisher

11

สำหรับโปรโตคอล git (git: // ... ) ให้ติดตั้ง socat และเขียนสคริปต์เช่น:

#!/bin/sh

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

ทำให้มันใช้งานได้ใส่ไว้ในพา ธ ของคุณและใน~/.gitconfigชุดของคุณcore.gitproxyเป็นชื่อของสคริปต์นั้น


ใช้งานได้กับ Windows ด้วย SOCAT ของ cygwin ด้วย ใช้socat STDIO PROXY:%proxy%:%1:%2,proxyport=%PROXYPORT%
davenpcj

1
สามารถใช้set GIT_PROXY_COMMAND=path\to\scriptเพื่อทำให้ GIT ใช้พรอกซีโดยไม่ต้องยุ่งกับ git config
davenpcj

ใช่ ในที่สุดคำใบ้ที่ถูกต้อง! ฉันต้องการการรับรองความถูกต้อง: exec socat STDIO PROXY: <proxy>: $ 1: $ 2, proxyport = <port>, proxyauth = <user>: <passwd> พบที่นี่: gist.github.com/sit/49288
Joachim

11

มีบางสิ่งที่ฉันสังเกตเห็นและต้องการแบ่งปันที่นี่:

git config --global http.proxy http://<proxy address>:<port number>

วิธีการข้างต้นจะใช้ไม่ได้กับ ssh URL (เช่นgit@github.com:<user name>/<project name>.git):

git clone git@github.com:<user name>/<project name>.git // will not use the http proxy

และสิ่งต่าง ๆ จะไม่เปลี่ยนแปลงหากเราตั้งค่า SSH ผ่านพอร์ต HTTPS ( https://help.github.com/th/articles/using-ssh-over-the-https-portพอร์ต) เพราะมันเปลี่ยนเฉพาะพอร์ต (22 โดยค่าเริ่มต้น ) การเชื่อมต่อ ssh เชื่อมต่อกับ

(ไม่ใช่เจ้าของภาษาอังกฤษโปรดปรับแต่งคำพูดของฉันหากจำเป็น)


7

ฉันทำงานบน Windows XP ที่ทำงาน (รัฐ / รัฐบาล) ดังนั้นฉันจึงทำการวิจัยและพบสิ่งนี้ที่นี่และมันก็ใช้ได้สำหรับฉัน หวังว่าจะช่วย :)

http_proxy ตัวแปรสภาพแวดล้อม

หากคุณใช้พร็อกซีเซิร์ฟเวอร์หรือไฟร์วอลล์คุณอาจต้องตั้งค่าตัวแปรสภาพแวดล้อม http_proxy เพื่อเข้าถึง url บางส่วนจาก commandline ตัวอย่าง: การติดตั้ง ppm สำหรับ perl หรือใช้ rpm ใน linux, อัปเดต ubuntu

ตั้งค่าตัวแปร http_proxy ด้วยชื่อโฮสต์หรือที่อยู่ IP ของพร็อกซีเซิร์ฟเวอร์: http_proxy = http: // [proxy.example.org]

หากพร็อกซีเซิร์ฟเวอร์ต้องการชื่อผู้ใช้และรหัสผ่านให้รวมไว้ในแบบฟอร์มต่อไปนี้: http_proxy = http: // [ชื่อผู้ใช้: password@proxy.example.org]

หากพร็อกซีเซิร์ฟเวอร์ใช้พอร์ตอื่นที่ไม่ใช่ 80 ให้ระบุหมายเลขพอร์ต: http_proxy = http: // [ชื่อผู้ใช้: password@proxy.example.org: 8080]

Windows XP

  1. เปิดแผงควบคุมแล้วคลิกไอคอนระบบ
  2. บนแท็บขั้นสูงคลิกที่ตัวแปรสภาพแวดล้อม
  3. คลิกใหม่ในแผงตัวแปรระบบ
  4. เพิ่ม http_proxy ด้วยข้อมูลพร็อกซีที่เหมาะสม (ดูตัวอย่างด้านบน)

Linux, Solaris หรือ HP-UX

ตั้งค่าตัวแปรสภาพแวดล้อม http_proxy โดยใช้คำสั่งเฉพาะสำหรับเชลล์ของคุณ (เช่นชุดหรือส่งออก) ในการเปลี่ยนแปลงนี้แบบถาวรให้เพิ่มคำสั่งลงในไฟล์โปรไฟล์ที่เหมาะสมสำหรับเชลล์ ตัวอย่างเช่นใน bash ให้เพิ่มบรรทัดดังต่อไปนี้ในไฟล์. bash_profile หรือ. bashrc ของคุณ:

  1. http_proxy = http: // [ชื่อผู้ใช้: รหัสผ่าน @ ชื่อโฮสต์: พอร์ต];
  2. ส่งออก $ http_proxy

tanx -> :) C: \ Users \ AT> echo% https_proxy% 172.20.4.55:808
qasem

7

นอกเหนือจากคำตอบที่ฉันพบว่ามีประโยชน์ในการพิจารณา 2 คะแนนเหล่านี้:

อาจต้องบังคับใช้รูปแบบการตรวจสอบสิทธิ์:

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

นอกจากนี้โดยทั่วไปแล้วจะมี schema การตรวจสอบความถูกต้อง NTLM อาจต้องระบุโดเมนโฆษณาอย่างชัดเจน

ในทุบตีคอมไพล์:

echo %userdomain%

และอัปเดต http.proxy ตามลำดับ:

git config --global http.proxy http://DOMAIN\\proxyuser:proxypwd@proxy.server.com:8080

อย่างไรก็ตามการตรวจสอบอาจได้รับความช่วยเหลือโดยเพิ่มบันทึก CURL:

export GIT_CURL_VERBOSE=1

ฉันต้องการที่จะเพิ่ม proxyAuthMethod git config --global http.proxyAuthMethod basicใช้ Git gersion 2.8.3 ไม่ได้ส่งการรับรองความถูกต้องใด ๆ จนกว่าฉันจะตั้งค่าพารามิเตอร์การตั้งค่านี้
HeatfanJohn

5

หากคุณมีการติดตั้งและกำหนดค่าtsocksหรือพร็อกซีคุณสามารถทำได้

$ tsocks git clone <you_repository>

หรือ

$ proxychains git clone <you_repository>

เพื่อให้สั้นลงฉันได้สร้างลิงก์สัญลักษณ์/usr/bin/pเพื่อproxychainsให้ฉันสามารถใช้งานได้เช่นนี้

p git clone <you_repository>

และฉันสามารถใช้มันเพื่อ proxy คำสั่งใด ๆ

p <cmd-need-be-proxied>

โดยวิธีการที่ proxychains ไม่ได้รับการปรับปรุงเป็นเวลานานคุณอาจต้องการลองproxychians-ng


4

การตั้งค่า git proxy บนเทอร์มินัล

ถ้า

  • คุณไม่ต้องการตั้งค่าพร็อกซีสำหรับแต่ละโครงการคอมไพล์ด้วยตนเองทีละโครงการ
  • ต้องการใช้พร็อกซีเดียวกันสำหรับโครงการของคุณทุกครั้ง

ตั้งทั่วโลกเพียงครั้งเดียว

git config --global http.proxy username:password@proxy_url:proxy_port
git config --global https.proxy username:password@proxy_url:proxy_port

หากคุณต้องการตั้งค่าพร็อกซีสำหรับโครงการ git เพียงโครงการเดียว (อาจมีบางสถานการณ์ที่คุณไม่ต้องการใช้พรอกซีเดียวกันหรือพร็อกซีใด ๆ เลยสำหรับการเชื่อมต่อ git บางอย่าง)

//go to project root
cd /bla_bla/project_root
//set proxy for both http and https
git config http.proxy username:password@proxy_url:proxy_port
git config https.proxy username:password@proxy_url:proxy_port

หากคุณต้องการแสดงการตั้งค่าพร็อกซีปัจจุบัน

git config --list 

ถ้าคุณต้องการลบ proxy ทั่วโลก

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

ถ้าคุณต้องการลบ proxy สำหรับหนึ่ง git root เท่านั้น

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


3

ฉันทำตามคำตอบส่วนใหญ่ที่แนะนำที่นี่ ครั้งแรกที่ฉันได้รับข้อผิดพลาดต่อไปนี้:

ร้ายแรง: ไม่สามารถเข้าถึง ' https://github.com/folder/sample.git/ ': schannel: ถัดไป InitializeSecurityContext ล้มเหลว: ข้อผิดพลาดที่ไม่รู้จัก (0x80092012) - ฟังก์ชันการเพิกถอนไม่สามารถตรวจสอบการเพิกถอนใบรับรอง

จากนั้นฉันได้ลองคำสั่งต่อไปนี้โดย @Salim Hamidi

git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080

แต่ฉันได้รับข้อผิดพลาดต่อไปนี้:

ร้ายแรง: ไม่สามารถเข้าถึง ' https://github.com/folder/sample.git/ ': ได้รับรหัส HTTP 407 จากพร็อกซีหลัง CONNECT

สิ่งนี้อาจเกิดขึ้นหากพร็อกซีเซิร์ฟเวอร์ไม่สามารถตรวจสอบใบรับรอง SSL ดังนั้นเราต้องการตรวจสอบให้แน่ใจว่าการยืนยัน SSL ปิด (ไม่แนะนำสำหรับเว็บไซต์ที่ไม่น่าเชื่อถือ) ดังนั้นฉันได้ทำตามขั้นตอนต่อไปนี้ซึ่งแนะนำโดย @Arpit แต่มีการเปลี่ยนแปลงเล็กน้อย:

1. ก่อนอื่นให้แน่ใจว่าจะลบการตั้งค่าพร็อกซีก่อนหน้านี้:

git config --global --unset http.proxy

2. ทำรายการและรับเนื้อหา gitconfig

git config --list --show-origin

3. อัปเดตเนื้อหาของไฟล์ gitconfig ล่าสุดดังนี้:

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

3

ฉันได้ลองคำตอบทั้งหมดข้างต้นแล้วและไม่มีอะไรทำงานให้ฉันได้เนื่องจากมีปัญหาการเข้ารหัสรหัสผ่านพร็อกซี

คำสั่งนี้ใช้งานได้:

git config --global http.proxy http://username@proxy.example.com:PortNumber 

อย่าป้อนรหัสผ่านในคำสั่งของคุณ มันจะถามแบบไดนามิกเมื่อคุณพยายามเชื่อมต่อกับ repo git ใด ๆ


ขอบคุณสิ่งนี้ใช้ได้สำหรับฉัน แม้ว่าการตั้งค่า git config ควรเป็น http.proxy
ochhii

ชื่อผู้ใช้ไม่เพียงพอต้องใช้รหัสผ่านด้วย
Dinith

ใช้รหัสนี้ {git config --global http.proxy proxyuser: proxypwd@proxy.server.com: 8080 }
Dinith

2

สำหรับผู้ใช้ Windows: หากมีgit configหรือset http_proxy=ไม่ทำงานคำตอบนี้อาจช่วย

แทนที่โปรโตคอลเก็บคอมไพล์ด้วยgit:// http://หมายเหตุคุณจะต้องตั้งค่าhttp_proxyครั้งแรกอย่างไรก็ตาม


0

หลังจากพยายามแก้ปัญหาทุกอย่างในหน้านี้อย่างไม่รู้จักเหน็ดเหนื่อยงานของฉันก็คือใช้คีย์ SSH แทน!

  1. เปิด Git Bash
  2. $ ssh-keygen.exe -t rsa -C
  3. เปิดผู้ให้บริการ Git ของคุณ (Github, Bitbucket และอื่น ๆ )
  4. เพิ่มการคัดลอกเนื้อหาไฟล์ id_rsa.pub ลงในหน้าป้อนข้อมูลของผู้ให้บริการ Git (ตรวจสอบโปรไฟล์ของคุณ)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.