ส่ง GitPython clone หนึ่งครั้งผ่าน HTTP proxy
ส่งสภาพแวดล้อมพร็อกซี่ไปยัง Repo.clone_from แล้วตรวจสอบการตั้งค่า Git ที่อาจเขียนทับได้
หากต้องการส่ง HTTPS clone หนึ่งครั้งผ่านพร็อกซี่โดยไม่เปลี่ยนสภาพแวดล้อมของโปรเซส Python หรือเขียนการตั้งค่า Git แบบทั่วโลก ให้ส่งตัวแปรไปยัง Repo.clone_from:
from git import Repo
repo = Repo.clone_from(
'https://git.example/team/project.git',
'/path/to/new-checkout',
env={
'http_proxy': 'http://proxy.example:8080',
'https_proxy': 'http://proxy.example:8080',
},
)ใช้ URL ของพร็อกซี่โดยตรงในสตริง Python สำหรับ repository สาธารณะและเส้นทางที่อนุญาตพร็อกซี่สาธารณะ รายการพร็อกซี่ HTTP มี endpoint ที่เป็นตัวเลือกให้ เครื่องหมายคำพูดสำหรับจัดกลุ่มของ shell ไม่ใช่ส่วนหนึ่งของ URL นั้น URL ของ repository แบบ SSH จะใช้การขนส่ง SSH แทน ดังนั้นตัวอย่างนี้จึงต้องใช้ URL ของ repository แบบ HTTPS
ถ้า Git ยังเลือกเส้นทางอื่น
การแมป env จะอัปเดตสภาพแวดล้อมที่โปรเซสย่อยของ Git สืบทอดมา มันไม่ได้แทนที่สภาพแวดล้อมนั้นด้วยสภาพแวดล้อมว่าง ตรวจสอบค่า no_proxy ที่สืบทอดมาสำหรับการข้าม และตรวจสอบการกำหนดค่า http.proxy ของ Git เอง ซึ่งอาจเขียนทับการตั้งค่าสภาพแวดล้อมที่เกี่ยวข้อง
คุณอาจพบตัวอย่างที่ส่ง config ไปยัง clone นั่นเรียกใช้ตัวเลือก --config ของ Git clone และเขียนการกำหนดค่าลงใน repository ใหม่ เลือกวิธีนั้นเฉพาะเมื่อการตั้งค่าควรคงอยู่ต่อไปหลังกระบวนการ clone นี้ การกำหนดค่า Git ตอน clone เทียบกับเฉพาะตอนเรียกใช้ อธิบายความแตกต่าง