ใช้พร็อกซีกับ Git repository เดียว
ตั้งพร็อกซี HTTP เฉพาะ repository ตรวจการตั้งค่าที่ Git เลือกสำหรับ remote URL แล้วลบค่าทับเมื่อไม่ต้องการ
คุณไม่จำเป็นต้องตั้งพร็อกซี Git แบบ global เพียงเพราะโครงการเดียวต้องใช้การเชื่อมต่ออื่น checkout ที่มีอยู่มีการตั้งค่า local ของตัวเอง จึงเก็บการเปลี่ยนแปลงไว้ใน repository นั้นได้
ตัวอย่างนี้ใช้คำสั่ง git config set/get/unset ปัจจุบัน โฟลเดอร์โครงการ remote URL และ IP ตัวอย่างในเอกสารเป็นค่าที่ต้องแทน สำหรับการทดสอบ repository สาธารณะที่อนุญาตพร็อกซีสาธารณะ ให้เลือกจากรายการพร็อกซี HTTP
git -C project config set --local http.proxy http://203.0.113.10:8080
git -C project ls-remote origin
URL พร็อกซีรวม scheme ของการรับส่งไว้ remote HTTPS ใช้พร็อกซี HTTP ปกติที่รองรับ CONNECT ได้ scheme HTTPS ของ remote ไม่ได้บังคับให้เปลี่ยน URL พร็อกซีเป็น HTTPS
ตรวจว่า Git เลือกอะไรจริง
หากผลไม่ตรงคาด ให้ดูค่าที่ถูกเลือกสำหรับ remote URL จริง:
git -C project config get --show-origin \
--url=https://example.com/team/project.git http.proxy
ใช้ remote HTTPS จริงในคำถามนั้น Git อาจมีการตั้งค่าระบบ ผู้ใช้ repository บรรทัดคำสั่ง และเฉพาะ URL การดูแค่ค่า global http.proxy อาจพลาดกฎที่เจาะจงกว่า เอาต์พุตแหล่งที่มาช่วยระบุไฟล์หรือแหล่งบรรทัดคำสั่งที่กำหนดผลนั้น
การตั้งค่า local ใช้กับการเข้าถึงผ่าน HTTP จาก repository ไม่ใช่เฉพาะ branch ใด branch หนึ่ง หากมีหลาย remote HTTP จึงอาจใช้กับ remote อื่นนอกจากตัวแรกที่ทดสอบด้วย มีการตั้งค่า HTTP เฉพาะ URL หากต้องการขอบเขตแคบกว่า
ก่อนมี checkout
สำหรับ clone ครั้งแรก เลือกว่าค่าทับควรคงอยู่หรือไม่ หากต้องการจำกัดไว้เฉพาะการเรียก Git ครั้งนั้น ให้ใช้:
git -c http.proxy=http://203.0.113.10:8080 \
clone https://example.com/team/project.git
ค่าทับจากบรรทัดคำสั่งไม่ได้กลายเป็นรายการตั้งค่าถาวรใน checkout ใหม่ด้วยตัวเอง ตั้งค่า local หลังจากนั้นหาก fetch ครั้งต่อไปควรใช้เส้นทางเดียวกัน
remote SSH เป็นอีกกรณี
remote ที่เริ่มด้วย git@host: หรือ ssh:// ใช้ SSH การตั้งค่าพร็อกซี HTTP ของ Git ไม่ได้เปลี่ยนให้เป็นการรับส่ง HTTP ตรวจวิธีรับส่งของ remote ก่อนเปลี่ยน IP พร็อกซีที่ทำงานได้ เพียงเพราะคำสั่ง SSH ยังล้มเหลว
เมื่อไม่ต้องการค่าทับ local ให้ลบเฉพาะคีย์นั้น:
git -C project config unset --local http.proxy
เมื่อลบแล้ว การตั้งค่าที่เกี่ยวข้องจากแหล่งอื่นจะกลับมามีผล นี่ไม่ใช่คำสั่งลบการตั้งค่าพร็อกซีทั้งหมดบนเครื่อง