ฉันจะดึงจากที่เก็บ Git ผ่านพร็อกซี HTTP ได้อย่างไร


491

หมายเหตุ: ในขณะที่ use-case ที่อธิบายไว้นั้นเกี่ยวกับการใช้ submodules ภายในโครงการเช่นเดียวกันกับที่เก็บปกติgit cloneบน HTTP

ฉันมีโครงการภายใต้การควบคุม Git ฉันต้องการเพิ่ม submodule:

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

แต่ฉันได้

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

ฉันตั้งค่า HTTP_PROXY ของฉันแล้ว:

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

ฉันยังมีการตั้งค่า Git ทั่วโลกสำหรับ http proxy:

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

มีใครได้รับ HTTP ดึงข้อมูลให้ทำงานผ่านพร็อกซีอย่างต่อเนื่องหรือไม่ สิ่งที่แปลกจริง ๆ คือโครงการบางอย่างใน GitHub ทำงานได้ดี ( awesome_nested_setตัวอย่าง) แต่บางโครงการล้มเหลวอย่างต่อเนื่อง ( ตัวอย่างเช่นราง )


พร็อกซีของคุณอาจตรวจสอบบางคำหรือบางสิ่งบางอย่างดังนั้นมีผลเฉพาะกับ repos ที่คำเหล่านั้นปรากฏขึ้นเพื่อเป็นส่วนหนึ่งของสตรีมไบต์?
pjz


4
@alvaro ฉันคิดว่าคุณหมายถึงการได้รับ git เพื่อทำงานกับพร็อกซีเซิร์ฟเวอร์นั้นอาจซ้ำซ้อนกับคำถามนี้ คำถามนี้เก่ากว่าคำถามที่คุณแนะนำ
Derek Mahar

2
@James การตั้งค่า Git "global" ของคุณสำหรับพร็อกซีเซิร์ฟเวอร์นั้นไม่ใช่ของจริง แต่เป็น local จะเป็นระดับโลกคุณจะต้องจัดหาอาร์กิวเมนต์ไป--global git config
Derek Mahar

1
@DerekMahar คำถามที่เก่ากว่าอาจถูกปิดซ้ำกับคำถามที่ใหม่กว่าหากคำถามที่ใหม่กว่านั้นมีคุณภาพที่ดีกว่า (หรือโดยทั่วไปแล้วการสมัคร)
Raedwald

คำตอบ:


584

คุณสามารถตั้งค่าพร็อกซี HTTP ที่ Git ใช้ในคุณสมบัติการกำหนดค่าส่วนกลางhttp.proxy:

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

ในการตรวจสอบกับพร็อกซี:

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

(เครดิตไปที่@EugeneKulabuhovและ@JaimeReynosoสำหรับรูปแบบการตรวจสอบสิทธิ์)


8
สิ่งนี้ใช้งานได้สำหรับฉัน: ตั้งค่า HTTP_PROXY ในสภาพแวดล้อมสำหรับผู้ใช้ (บน Windows) จากนั้นความคิดเห็นด้านบนด้วย $ HTTP_PROXY (ตัวพิมพ์ใหญ่) +1 สำหรับโซลูชันนี้
Sean Aitken

4
CleverCoder บน Windows คุณต้องระบุ% HTTP_PROXY% ไม่ใช่ $ HTTP_PROXY (เว้นแต่คุณจะใช้ Cygwin แน่นอน) ฉันจะแก้ไขคำตอบของฉันให้ทำงานใน Windows แทนสภาพแวดล้อม Unix
Derek Mahar

7
ฉันจะใส่ชื่อผู้ใช้และรหัสผ่านสำหรับพร็อกซี่ได้ที่ไหน
Duna

26
ใช้git config --global http.proxy http://mydomain\\myusername:mypassword@myproxyserver:8080ไวยากรณ์เพื่อระบุชื่อผู้ใช้ / รหัสผ่าน
Eugene Kulabuhov

2
สำหรับทุกคนที่อาจมีปัญหากับพร็อกซี http: // <UserID>: <รหัสผ่าน> @ <ProxyURL>: <พอร์ต> / ทำงานให้ฉัน
Jaime Reynoso

146

มีคำตอบที่ยอดเยี่ยมเกี่ยวกับเรื่องนี้อยู่แล้ว อย่างไรก็ตามฉันคิดว่าฉันจะชิปเพราะพร็อกซีเซิร์ฟเวอร์บางแห่งต้องการให้คุณตรวจสอบสิทธิ์ด้วยรหัสผู้ใช้และรหัสผ่าน บางครั้งสิ่งนี้สามารถอยู่ในโดเมน

ตัวอย่างเช่นหากการกำหนดค่าพร็อกซีเซิร์ฟเวอร์ของคุณเป็นดังนี้:

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

จากนั้นเพิ่ม.gitconfigไฟล์ของคุณโดยใช้คำสั่งต่อไปนี้:

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

httpsไม่ต้องกังวลกับ ตราบเท่าที่พร็อกซีเซิร์ฟเวอร์ที่ระบุรองรับ http และ https จากนั้นหนึ่งรายการในไฟล์กำหนดค่าจะพอเพียง

จากนั้นคุณสามารถตรวจสอบว่าคำสั่งเพิ่มรายการใน.gitconfigไฟล์ของคุณสำเร็จโดยทำcat .gitconfigดังนี้

ในตอนท้ายของไฟล์คุณจะเห็นรายการดังนี้:

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

แค่นั้นแหละ!


น่าสนใจ ฉันสามารถไปที่ส่วน "การแก้ไขเดลตา" ด้วย 100% แต่ดูเหมือนว่ากระบวนการโคลนจะหยุดทำงาน ใครมีประสบการณ์
โรมัน

1
+1 และในไม่ช้าคุณจะสามารถตั้งค่าพร็อกซีต่อ URL ได้!
VonC

@apoplexy คุณสามารถแสดงความคิดเห็นในการแก้ไขที่แนะนำของคุณได้ดังนั้นฉันจึงสามารถพิจารณา
Max MacLeod

3
หากคุณมีสัญลักษณ์ @ ในชื่อผู้ใช้หรือรหัสผ่านของคุณคุณสามารถเข้ารหัส URL %40และใช้งานได้
Adarsha

3
แทน cat .gitconfig คุณสามารถแสดงรายการการตั้งค่าการกำหนดค่าด้วย git config
user3969377

125

สิ่งที่ทำงานได้ในที่สุดก็คือการตั้งค่าhttp_proxyตัวแปรสภาพแวดล้อม ฉันตั้งค่าไว้HTTP_PROXYถูกต้องแล้ว แต่เห็นได้ชัดว่าคอมไพล์ชอบเวอร์ชั่นตัวเล็กกว่าดีกว่า


3
การตั้งค่าhttp.proxyในการกำหนดค่าส่วนกลาง Git ทำงานได้หรือไม่? ในคำถามของคุณคุณตั้งค่าhttp.proxyในการกำหนดค่าที่เก็บท้องถิ่น
Derek Mahar

22
ในกรณีของฉันฉันต้องตั้งhttps_proxy
สมิ ธ

1
https.proxyดูเหมือนว่าจะทำงานให้ฉันในขณะที่ฉันใช้ https เหนือ github
Shervin Asgari

3
@MSmith หากคุณต้องตั้งค่าhttps_proxyนี้หมายความว่าคุณกำลังใช้คำถามที่httpsไม่httpเกี่ยวกับ
Piotr Dobrogost

3
Curl และ libcurl ไม่รู้จัก HTTP_PROXY และ HTTPS_PROXY ที่เป็นตัวพิมพ์ใหญ่ ดูลิงค์นี้สำหรับข้อมูลเพิ่มเติม: curl.haxx.se/mail/archive-2001-12/0034.html
Doug

49

ดูเหมือนว่าคุณกำลังใช้คอมไพล์ mingw ของ Git บน windows (หรืออาจเป็นอีกอันที่ฉันไม่เคยได้ยินมาก่อน) มีวิธีการแก้ไขข้อบกพร่องนี้: ฉันเชื่อว่าทั้งหมด http proxy ทำงานสำหรับ git ทำได้โดย curl ตั้งค่าตัวแปรสภาพแวดล้อมนี้ก่อนรัน git:

GIT_CURL_VERBOSE=1

อย่างน้อยก็ควรให้ความคิดแก่คุณว่าเกิดอะไรขึ้นเบื้องหลัง


7
เมื่อฉันเพิ่มตัวแปรสภาพแวดล้อมนี้ msysgit จะไม่พิมพ์อะไรเพิ่มเติม :(
Andrew Arnott

หลังจากต่อสู้กับพร็อกซี่มาระยะหนึ่งเคล็ดลับนี้ช่วยให้ฉันค้นพบว่าฐานข้อมูลใบรับรองของ curl ขาดหายไป / เกิดความสับสนและนั่นเป็นสาเหตุที่ทำให้คำขอล้มเหลว
davenpcj

ฉันได้มองหาสิ่งนี้มาระยะหนึ่งแล้ว ขอบคุณ
M Smith

40

หากคุณต้องการใช้พร็อกซีในที่เก็บข้อมูลที่ระบุไม่จำเป็นต้องใช้ที่เก็บอื่น วิธีที่นิยมคือ-c, --config <key=value>ตัวเลือกเมื่อคุณgit cloneเป็นที่เก็บ เช่น

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

มันแปลกฉันลองตั้งค่า $ http_proxy แต่คอมไพล์ไม่เคารพมัน ดูเหมือนว่าจะสนใจเกี่ยวกับการกำหนดค่าของตัวเองเท่านั้น ...
weberc2

โรงงาน นอกจากนี้คุณยังสามารถระบุหลายครั้งเช่นเมื่อคุณยังต้องการที่จะตั้งค่า--config https.proxy
barfuin

ขอบคุณ! สิ่งที่ฉันกำลังมองหา
Boyang

2
โคลนด้วยการกำหนดค่าพร็อกซี แต่ไม่เปลี่ยนการตั้งค่าพร็อกซีของผู้ใช้ สิ่งที่ฉันต้องการ! ขอบคุณ.
ลงโทษ

26

เมื่อทีมเครือข่ายของคุณทำการตรวจสอบ SSL โดยเขียนใบรับรองใหม่ให้ใช้ URL http แทน https หนึ่งรวมกับการตั้งค่า var นี้ใช้งานได้สำหรับฉัน

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

2
คุณสามารถเพิ่มสิ่งนี้ลงในสภาพแวดล้อมเพื่อยอมรับใบรับรองที่เขียนใหม่ซึ่งเครือข่ายเสนอให้ตรวจสอบปริมาณการใช้งานของคุณ: ส่งออก GIT_SSL_NO_VERIFY = true
bbaassssiiee

ทำงานให้ฉันอย่างสมบูรณ์แบบ ขอบคุณ ฉันเพิ่งมีการเพิ่มการกำหนดค่าคอมไพล์ --global http.proxy พร็อกซี่: 8081 คอมไพล์ตั้งค่า --global https.proxy พร็อกซี่: 8081
ซิด

ทางออกที่ง่ายและรวดเร็ว +1 สำหรับคำตอบนี้
WALKER

1
ขอบคุณ @sethbc @datasmid! ฉันต้องการ GIT_CURL_VERBOSE = 1 เพื่อทำการดีบักและ GIT_SSL_NO_VERIFY = true เพื่อข้ามการตรวจสอบ
เฮนรีริเวร่า

ไม่ได้ทำงานกับฉัน ไม่แม้แต่กับ GIT_SSL_NO_VERIFY var
keinabel

20

คุณสามารถแก้ไขไฟล์. gitconfigได้เช่นกันที่อยู่ในไดเรกทอรี% userprofile% บนระบบ Windows ( notepad% userprofile% .gitconfig ) หรือในไดเรกทอรี ~ ในระบบ Linux ( vi ~ / .gitconfig ) และเพิ่มส่วน httpดังต่อไปนี้

เนื้อหาของไฟล์. gitconfig:

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

20

สำหรับฉัน git: // ไม่ทำงานผ่านพร็อกซีแม้ว่า https: // จะทำเช่นนั้น สิ่งนี้ทำให้ปวดหัวเล็กน้อยเพราะฉันใช้งานสคริปต์ที่ทุกคนใช้ git: // ดังนั้นฉันจึงไม่สามารถเปลี่ยนแปลงได้ทั้งหมด อย่างไรก็ตามฉันพบ GEM นี้

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

ขอบคุณสิ่งนี้ช่วยได้มาก
dgrat

ฉันรู้ว่าฉันยังมีปัญหาในการดึงจาก git: // คุณเคยคิดว่าเป็นปัญหาสำคัญของ SSH หรือไม่? ปัญหาของฉันเกิดจากการกำหนดค่าคีย์ SSH ไม่ถูกต้อง
avazula

17

นี่เป็นคำถามเก่า แต่ถ้าคุณใช้ Windows ให้ลองตั้งค่า HTTPS_PROXY เช่นกันหากคุณดึงข้อมูลผ่าน https URL ทำงานให้ฉัน!


2
มันเพียงพอที่จะตั้งค่าhttps_proxyตัวแปรสภาพแวดล้อมเพียงอย่างเดียว (ไม่มีตัวเลือก git global หรือ repo proxy ตัวเลือก) ในกรณีของฉัน (msysgit บน Windows XP)
Piotr Dobrogost

13

ผมพบว่าค่าhttp.proxyมิได้GIT_PROXY_COMMANDทำงานให้กับพร็อกซี่ http ฉันรับรองความถูกต้อง พรอกซีไม่ได้ถูกกระตุ้นด้วยวิธีใด แต่ฉันหาวิธีแก้ไขปัญหานี้

  1. ติดตั้งเหล็กไขจุกหรือทางเลือกอื่นที่คุณต้องการ
  2. สร้างไฟล์อัตโนมัติ สำหรับรูปแบบauthfileคือ: user_name:passwordและuser_name, passwordคือชื่อผู้ใช้และรหัสผ่านเพื่อเข้าใช้พร็อกซี echo "username:password" > ~/.ssh/authfileในการสร้างไฟล์เช่นคำสั่งเรียกใช้เพียงเช่นนี้

  3. แก้ไข~/.ssh/configและตรวจสอบให้แน่ใจว่าได้รับอนุญาตคือ644:chmod 644 ~/.ssh/config

ใช้ github.com เป็นตัวอย่างเพิ่มบรรทัดต่อไปนี้~/.ssh/config:

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

ตอนนี้เมื่อใดก็ตามที่คุณทำอะไรกับgit@github.comมันมันจะใช้พร็อกซี่โดยอัตโนมัติ คุณสามารถทำสิ่งเดียวกันกับBitbucket ได้เช่นกัน

นี่ไม่ได้สง่างามเท่าวิธีการอื่น ๆ แต่ใช้งานได้เหมือนมีเสน่ห์


1
คุณช่วยอธิบายรายละเอียดในขั้นตอนที่ 2 "สร้างไฟล์อัตโนมัติ" ได้ไหม? ดูเหมือนว่าวิธีการของคุณเป็นวิธีเดียวที่จะทำงานเพื่อ git: // urls
nik

@NikBagdon ฉันเพิ่มรายละเอียดเพิ่มเติมไปยังขั้นตอนที่ 2 แจ้งให้เราทราบหากมีบางสิ่งที่ไม่ชัดเจน :)
Carlosin

11

บน Windows หากคุณไม่ต้องการใส่รหัสผ่านใน. gitconfig ในข้อความธรรมดาคุณสามารถใช้

มันตรวจสอบคุณกับปกติหรือแม้แต่ Windows NTLM proxy และเริ่ม localhost-proxy โดยไม่ต้องตรวจสอบ

เพื่อให้มันทำงาน:

  • ติดตั้ง Cntml
  • กำหนดค่า Cntml ตามเอกสารเพื่อส่งการตรวจสอบสิทธิ์พร็อกซีของคุณ
  • ชี้ไปที่พร็อกซี localhost ใหม่ของคุณ:

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

2
สำหรับสิ่งที่คุ้มค่านี่ควรเป็นคำตอบที่ยอมรับได้เขาอยู่บนหน้าต่าง ไม่มีพร็อกซีแบบโปร่งใส (ไม่เช่นนั้นจะไม่มีปัญหา)
booyaa

9

สำหรับฉันมันทำงานอะไร:

sudo apt-get install socat

สร้างไฟล์ภายใน $ BIN_PATH / gitproxy ของคุณด้วย:

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

อย่าลืมให้สิทธิ์การดำเนินการ

chmod a+x gitproxy

เรียกใช้คำสั่งต่อไปนี้เพื่อตั้งค่าสภาพแวดล้อม:

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

1
ลิงก์ไปที่คำอธิบายและลิงก์ไปยังส่วนสำคัญที่มีการอัปเดตสคริปต์ (mini-): emilsit.net/blog/archives/…
Karl Richter

คำตอบนี้เป็นคำตอบเดียวที่ใช้ได้กับgit://URL โปรโตคอลสำหรับเซิร์ฟเวอร์ git (หายาก) ที่ไม่สนับสนุน https ใช้ได้กับ windows ด้วยแบตช์ไฟล์ที่เหมาะสมและ socat สำหรับ windows
davenpcj

8

ตั้งค่าพร็อกซีเป็น git

คำสั่ง

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

ตัวอย่าง

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

7

ตั้ง Git หนังสือรับรองผู้ช่วยเป็น wincred

git config --global credential.helper wincred

ตรวจสอบให้แน่ใจว่ามีข้อมูลรับรองเพียง 1 รายการเท่านั้น

git config -l

หากมีมากกว่า 1 รายการและไม่ได้ตั้งค่าเป็นลบออกจาก wincred

git config --system --unset credential.helper

ตอนนี้ตั้งค่าพร็อกซีโดยไม่มีรหัสผ่าน

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

ตรวจสอบว่าการตั้งค่าทั้งหมดที่คุณเพิ่มดูดี ....

git config --global -l

ตอนนี้คุณดีไปแล้ว!


6

ฉันมีปัญหาเดียวกันกับการแก้ไขที่แตกต่างกันเล็กน้อย: สร้าง GIT ใหม่ด้วย HTTP SUPPORT

git:โปรโตคอลไม่ได้ทำงานผ่านไฟร์วอลล์ขององค์กร

ตัวอย่างเช่นสิ่งนี้หมดเวลา:

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

curl github.comทำงานได้ดี แต่ฉันรู้ว่าhttp_proxyตัวแปรสภาพแวดล้อมของฉันถูกต้อง

ฉันพยายามใช้httpเช่นด้านล่าง แต่เกิดข้อผิดพลาดขึ้นในทันที

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

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

ฉันพยายามคอมไพล์คอมไพล์ใหม่เช่น:

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

แต่ยังคงมีข้อผิดพลาดร้ายแรง

สุดท้ายหลังจากเวลาผ่านไปหลายชั่วโมงฉันก็อ่านไฟล์คอนฟิกและเห็นสิ่งนี้:

# กำหนด CURLDIR = / foo / bar หากไฟล์ส่วนหัวและไฟล์ไลบรารีของคุณอยู่

# / foo / bar / include และไดเร็กทอรี / foo / bar / lib

ฉันจำได้ว่าฉันไม่ได้ปฏิบัติตามcurlแหล่งที่มาและไปหาไฟล์ส่วนหัว แน่นอนพวกเขาไม่ได้ติดตั้ง นั่นคือปัญหา ทำให้ไม่ได้บ่นเกี่ยวกับไฟล์ส่วนหัวที่ขาดหายไป ดังนั้นฉันไม่ได้ตระหนักว่า--with-curlตัวเลือกไม่ได้ทำอะไรเลย (อันที่จริงแล้วเป็นค่าเริ่มต้นในเวอร์ชันของฉันgit)

ฉันทำสิ่งต่อไปนี้เพื่อแก้ไข:

  1. เพิ่มส่วนหัวที่จำเป็นสำหรับการทำ:

    yum install curl-devel
    (expat-devel-1.95.8-8.3.el5_5.3.i386  was already installed).
    
  2. ลบออกgitจาก/usr/local(เพราะฉันต้องการให้ติดตั้งใหม่อยู่ที่นั่น)

    ฉันเพิ่งลบออกgit*จาก/usr/local/shareและ/usr/local/libexec

  3. ค้นหารวม dirs ที่มีไฟล์curlและexpatส่วนหัวแล้ว (เพราะฉันได้อ่านผ่านconfigure) เพิ่มเหล่านี้ในสภาพแวดล้อมเช่น:

    export CURLDIR=/usr/include 
    export EXPATDIR=/usr/include
    
  4. เรียกใช้configureด้วยตัวเลือกต่อไปนี้ซึ่งอธิบายอีกครั้งในconfigureไฟล์ของตัวเองและเป็นค่าเริ่มต้น แต่สิ่งที่ heck:

    ./configure  --with-curl --with-expat
    
  5. และตอนนี้httpใช้ได้กับgitไฟร์วอลล์องค์กรของฉัน:

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

ฉันดีใจที่คุณส่งต่อไปนี้ฉันไม่ได้ตระหนักว่าโปรโตคอล git ไม่ได้ถูกจัดการกับ squid proxy ของฉัน
rupert160

5

เพียงโพสต์สิ่งนี้เพราะมันเป็นผลลัพธ์แรกบน Google โพสต์บล็อกนี้ฉันพบว่าแก้ปัญหาให้ฉันได้โดยการปรับปรุงใบรับรอง curl

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


1
Halleluyah บวกนี้git config --global http.sslcainfo NEW_CERTS_BUNDLE.crtตามที่อธิบายไว้ใน: stackoverflow.com/a/8248484/98528ทำเพื่อฉัน! ขอบคุณ!
akavel




2

สำหรับ Windows

ไปที่ -> C: / Users / ชื่อผู้ใช้ / gitconfig

อัปเดตไฟล์ gitconfig โดยมีรายละเอียดด้านล่าง

[http]

[https]

proxy = https://your_proxy:your_port

[http]

proxy = http://your_proxy:your_port

จะตรวจสอบ proxy และหมายเลขพอร์ตของคุณได้อย่างไร?

Internet Explorer -> การตั้งค่า -> ตัวเลือกอินเทอร์เน็ต -> การเชื่อมต่อ -> การตั้งค่า LAN


2

วิธีการด้านล่างใช้ได้สำหรับฉัน:

echo 'export http_proxy=http://username:password@roxy_host:port/' >> ~/.bash_profile
echo 'export https_proxy=http://username:password@roxy_host:port' >> ~/.bash_profile
  • Zsh note: แก้ไขไฟล์ ~ / .zshenv ของคุณแทน ~ / .bash_profile
  • หมายเหตุ Ubuntu และ Fedora: แก้ไขไฟล์ ~ / .bashrc ของคุณแทน ~ / .bash_profile

2

คุ้มค่าที่จะพูดถึง: ตัวอย่างส่วนใหญ่ในตัวอย่างแสดงในเน็ตชอบ

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

ดูเหมือนว่าหากพร็อกซีของคุณต้องการการรับรองความถูกต้องคุณต้องปล่อยรหัสผ่าน บริษัท ไว้ใน git-config ซึ่งไม่เจ๋งจริงๆ

แต่ถ้าคุณเพียงกำหนดค่าผู้ใช้โดยไม่มีรหัสผ่าน:

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

ดูเหมือนว่า Git (อย่างน้อยบนเครื่อง Windows ของฉันที่ไม่มีหนังสือรับรอง - ผู้ช่วย) เพื่อรับรู้และแจ้งพรอมต์สำหรับรหัสผ่านพร็อกซีในการเข้าถึง repo


คุณเป็นคนของฉันเนื่องจากชื่อผู้ใช้และรหัสผ่าน บริษัท ของฉันมีซิมโบลพิเศษมากมายที่ไม่สามารถเข้ารหัสและผ่านได้ ด้วย "escamotage" นี้ฉันสามารถให้รหัสผ่านบนใบหน้าโคลนหรือขั้นตอนต่อไปอื่น ๆ หลังจากที่ได้ตั้งค่าที่อยู่พร็อกซี
Carmine Tambascia

1

นี่ไม่ใช่ปัญหากับพรอกซีของคุณ มันเป็นปัญหากับ GitHub (หรือ Git) มันล้มเหลวสำหรับฉันใน git-1.6.0.1 บน linux เช่นกัน มีรายงานข้อบกพร่องแล้ว (โดยคุณไม่น้อย)

ตรวจสอบให้แน่ใจว่าได้ลบนักหนาของคุณพวกเขาอยู่ใน google แล้ว แก้ไข: ต้องฝันมาก่อนฉันเดาว่าคุณไม่สามารถลบได้ ใช้สรุปสาระสำคัญแทน?


ฉันโพสต์ไปที่ github และ msysGit เช่นกัน b / c ฉันไม่แน่ใจว่าปัญหาอยู่ตรงไหน ฉันดูเหมือนจะไม่สามารถลบนักหนาได้
James A. Rosen


1

คำตอบข้างต้นใช้ได้สำหรับฉันเมื่อพร็อกซีของฉันไม่ต้องการการตรวจสอบสิทธิ์ หากคุณใช้พรอกซีซึ่งต้องการให้คุณตรวจสอบสิทธิ์คุณสามารถลอง CCProxy ฉันมีบทช่วยสอนเล็ก ๆ เกี่ยวกับวิธีตั้งค่าไว้ที่นี่

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

ฉันสามารถผลักดันดึงสร้าง repos ใหม่ ทุกอย่างทำงานได้ดี ตรวจสอบให้แน่ใจว่าคุณทำการถอนการติดตั้งใหม่ทั้งหมดและติดตั้งเวอร์ชันใหม่หากคุณประสบปัญหาเกี่ยวกับ Git อย่างที่ฉันทำ



0

ฉันไปถึงพรอกซีโดยใช้ https ... ผู้รับมอบฉันทะบางคนไม่ได้ตรวจสอบ 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

0

อย่างนี้ถูกตอบโดยคนจำนวนมาก แต่นี่เป็นเพียงสำหรับWinodws USER ที่อยู่หลังพรอกซีด้วยการรับรองความถูกต้อง

การติดตั้งใหม่ (ล้มเหลวก่อนไม่ต้องลบ)

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"

หากคุณมีอักขระพิเศษใน user / pass ให้ใช้url_encode

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.