କେବଳ ଗୋଟିଏ 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
ହଟାଇଲେ ଅନ୍ୟ ଉତ୍ସର ପ୍ରଯୋଜ୍ୟ ବିନ୍ୟାସ ପୁଣି କାମ କରେ। ଏହା ମେସିନର ସବୁ ପ୍ରକ୍ସି ସେଟିଂ ମେଟାଇବା କମାଣ୍ଡ ନୁହେଁ।