ਸਿਰਫ਼ ਇੱਕ 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
ਹਟਾਉਣ ਨਾਲ ਹੋਰ ਸਰੋਤਾਂ ਦੀ ਲਾਗੂ ਸੰਰਚਨਾ ਮੁੜ ਅਸਰ ਕਰਦੀ ਹੈ। ਇਹ ਮਸ਼ੀਨ ਦੀਆਂ ਸਾਰੀਆਂ ਪ੍ਰਾਕਸੀ ਸੈਟਿੰਗਾਂ ਮਿਟਾਉਣ ਦੀ ਕਮਾਂਡ ਨਹੀਂ।