صرف ایک Git ریپازٹری کے لیے پراکسی استعمال کریں
ریپازٹری میں مقامی HTTP پراکسی مقرر کریں، ریموٹ URL کے لیے Git کا منتخب بندوبست دیکھیں اور ضرورت ختم ہو تو اووررائیڈ ہٹائیں۔
ایک منصوبے کو الگ کنکشن چاہیے تو عالمی 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 ریموٹ بھی CONNECT معاون عام HTTP پراکسی استعمال کر سکتا ہے؛ ریموٹ کی 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 ریموٹ ہوں تو پہلی آزمائی گئی کے علاوہ دوسروں پر بھی استعمال ہو سکتی ہے۔ زیادہ محدود مماثلت کے لیے URL مخصوص HTTP ترتیبات ہیں۔
چیک آؤٹ بننے سے پہلے
پہلے کلون میں چنیں کہ اووررائیڈ قائم رہنا چاہیے یا نہیں؛ اسے صرف اسی Git کال تک محدود رکھنے کے لیے استعمال کریں:
git -c http.proxy=http://203.0.113.10:8080 \
clone https://example.com/team/project.git
کمانڈ لائن اووررائیڈ خودبخود نئے چیک آؤٹ میں مستقل اندراج نہیں بنتا۔ آئندہ fetch کو وہی راستہ چاہیے تو بعد میں مقامی قدر مقرر کریں۔
SSH ریموٹ الگ معاملہ ہے
git@host: یا ssh:// سے شروع ریموٹ SSH استعمال کرتا ہے۔ Git کی HTTP پراکسی ترتیب اسے HTTP منتقلی نہیں بناتی۔ صرف SSH عمل اب بھی ناکام ہے اس لیے چلتے پراکسی IP کو بدلنے سے پہلے ریموٹ کی نقل و حمل دیکھیں۔
مقامی اووررائیڈ درکار نہ ہو تو صرف وہ کلید ہٹائیں:
git -C project config unset --local http.proxy
ہٹانے سے دوسرے ذرائع کی قابلِ اطلاق ترتیب پھر سامنے آتی ہے۔ یہ مشین کی تمام پراکسی ترتیبات مٹانے کی کمانڈ نہیں۔