فقط چون یک پروژه اتصال متفاوتی می‌خواهد، به پروکسی سراسری Git نیاز ندارید. نسخهٔ کاری موجود پیکربندی محلی خودش را دارد؛ پس می‌توانید تغییر را در همان مخزن نگه دارید.

مثال‌ها از فرمان‌های فعلی git config set/get/unset استفاده می‌کنند. پوشهٔ پروژه، URL راه‌دور و IP مستندات جایگزین‌شدنی‌اند. برای آزمون مخزن عمومی در جایی که پروکسی عمومی مجاز است، گزینه‌ای از فهرست پروکسی‌های HTTP انتخاب کنید.

git -C project config set --local http.proxy http://203.0.113.10:8080
git -C project ls-remote origin

URL پروکسی شامل طرح انتقال آن است. مخزن راه‌دور HTTPS می‌تواند از پروکسی HTTP معمولی با پشتیبانی CONNECT استفاده کند؛ طرح HTTPS مقصد راه‌دور نیازی به تغییر URL پروکسی به HTTPS ایجاد نمی‌کند.

ببینید Git واقعاً چه چیزی انتخاب کرده است

اگر نتیجه نامنتظر است، مقدار انتخاب‌شده برای URL راه‌دور واقعی را بررسی کنید:

git -C project config get --show-origin \
  --url=https://example.com/team/project.git http.proxy

در پرس‌وجو از مقصد HTTPS راه‌دور واقعی استفاده کنید. Git می‌تواند تنظیمات سیستم، کاربر، مخزن، خط فرمان و ویژهٔ URL داشته باشد. دیدن فقط مقدار سراسری http.proxy ممکن است قاعده‌ای خاص‌تر را پنهان کند. خروجی مبدأ به شناسایی فایل یا منبع خط فرمان پشت نتیجه کمک می‌کند.

تنظیم محلی برای دسترسی مبتنی بر HTTP از آن مخزن است، نه فقط یک شاخهٔ خاص. بنابراین مخزنی با چند مقصد راه‌دور HTTP ممکن است آن را برای بیشتر از اولین مقصد آزموده‌شده استفاده کند. اگر تطبیق محدودتری می‌خواهید، تنظیمات HTTP ویژهٔ URL وجود دارد.

پیش از ایجاد نسخهٔ کاری

برای کلون اولیه، تصمیم بگیرید بازنویسی پایدار بماند یا نه؛ برای محدود کردن آن به همین اجرای Git از این استفاده کنید:

git -c http.proxy=http://203.0.113.10:8080 \
  clone https://example.com/team/project.git

بازنویسی خط فرمان خودبه‌خود ورودی پیکربندی دائمی در نسخهٔ کاری تازه نمی‌شود. اگر fetchهای بعدی باید این مسیر را بروند، سپس مقدار محلی تعیین کنید.

مقصد راه‌دور SSH مورد دیگری است

مقصدی که با git@host: یا ssh:// آغاز می‌شود SSH استفاده می‌کند. تنظیم پروکسی HTTP در Git آن را به انتقال HTTP تبدیل نمی‌کند. پیش از عوض کردن IP پروکسی سالم صرفاً به‌خاطر شکست ادامه‌دار عملیات SSH، انتقال مقصد راه‌دور را بررسی کنید.

وقتی بازنویسی محلی دیگر لازم نیست، فقط همان کلید را حذف کنید:

git -C project config unset --local http.proxy

حذف آن تنظیمات قابل اعمالِ منابع دیگر را دوباره آشکار می‌کند. این فرمان پاک کردن تمام تنظیمات پروکسی دستگاه نیست.

مقالات مرتبط