שימוש בפרוקסי למאגר Git אחד
הגדירו פרוקסי HTTP מקומי למאגר, בדקו מה Git בוחר לכתובת המרוחקת והסירו את ההגדרה העוקפת כשאינה נחוצה.
אין צורך בפרוקסי Git גלובלי רק מפני שפרויקט אחד צריך חיבור אחר. לעותק עבודה קיים יש תצורה מקומית משלו, ולכן אפשר לשמור את השינוי במאגר הזה.
הדוגמאות משתמשות בפקודות העדכניות git config set/get/unset. תיקיית הפרויקט, הכתובת המרוחקת ו-IP התיעוד הם מצייני מקום. לבדיקה של מאגר ציבורי שבה מותר להשתמש בפרוקסי ציבורי, בחרו מועמד מרשימת שרתי פרוקסי HTTP.
git -C project config set --local http.proxy http://203.0.113.10:8080
git -C project ls-remote origin
כתובת הפרוקסי כוללת את סכמת התעבורה שלה. כתובת מרוחקת HTTPS יכולה להשתמש בפרוקסי HTTP רגיל שתומך ב-CONNECT; סכמת HTTPS של הכתובת המרוחקת אינה דורשת לשנות את כתובת הפרוקסי ל-HTTPS.
בדקו מה Git בחר בפועל
אם התוצאה אינה צפויה, בדקו את הערך שנבחר לכתובת המרוחקת האמיתית:
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
הסרתו מאפשרת לתצורה רלוונטית ממקורות אחרים לחול שוב. זו אינה פקודה למחיקת כל הגדרות הפרוקסי במחשב.