หากต้องการส่ง 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 เทียบกับเฉพาะตอนเรียกใช้ อธิบายความแตกต่าง

บทความที่เกี่ยวข้อง