ප්රොක්සි සේවාදායකයක් භාවිතා කිරීමට මට Git ලබා ගන්නේ කෙසේද?
මට Git සේවාදායකයකින් කේත පරීක්ෂා කිරීමට අවශ්යයි, නමුත් එය සෑම විටම "ඉල්ලීම කල් ඉකුත් වී ඇති" බව පෙන්වයි. මම මෙය වළක්වා ගන්නේ කෙසේද?
විකල්පයක් ලෙස, මම ප්රොක්සි සේවාදායකයක් සකසන්නේ කෙසේද?
ප්රොක්සි සේවාදායකයක් භාවිතා කිරීමට මට Git ලබා ගන්නේ කෙසේද?
මට Git සේවාදායකයකින් කේත පරීක්ෂා කිරීමට අවශ්යයි, නමුත් එය සෑම විටම "ඉල්ලීම කල් ඉකුත් වී ඇති" බව පෙන්වයි. මම මෙය වළක්වා ගන්නේ කෙසේද?
විකල්පයක් ලෙස, මම ප්රොක්සි සේවාදායකයක් සකසන්නේ කෙසේද?
Answers:
භාවිතා කිරීමට විධානය:
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
proxyuser
ඔබගේ ප්රොක්සි පරිශීලකයා වෙත වෙනස් කරන්නproxypwd
ඔබගේ ප්රොක්සි මුරපදයට වෙනස් කරන්නproxy.server.com
ඔබගේ ප්රොක්සි සේවාදායකයේ URL වෙත වෙනස් කරන්න8080
ඔබගේ ප්රොක්සි සේවාදායකයේ වින්යාස කර ඇති ප්රොක්සි වරායට වෙනස් කරන්නමෙය http සහ https repos යන දෙකටම ක්රියාත්මක වන බව සලකන්න.
මෙම ප්රොක්සිය නැවත සැකසීමට සහ ප්රොක්සි නොමැතිව වැඩ කිරීමට ඔබ ඕනෑම වේලාවක තීරණය කරන්නේ නම්:
භාවිතා කිරීමට විධානය:
git config --global --unset http.proxy
අවසාන වශයෙන්, දැනට සකසා ඇති ප්රොක්සිය පරීක්ෂා කිරීමට:
git config --global --get http.proxy
%40
වෙනුවට ආදේශකයක් ලෙස ඔබට භාවිතා කළ හැකිය @
, මම මෙය මා විසින්ම පරීක්ෂා කර නැත. එය උපකාරී වේ යැයි සිතමි. :-)
ආයතනික ෆයර්වෝලයක් පිටුපස වින්ඩෝස් එක්ස්පී හි මෙය මට වැඩ කළේය.
මම සිට GIT v1.771 හැර කිසිම දේශීය ප්රොක්සි හෝ වෙනත් ඕනෑම මෘදුකාංග ස්ථාපනය කිරීම සඳහා ඇති didnt http://code.google.com/p/msysgit/downloads/list?can=3
$ git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
$ git config --system http.sslcainfo /bin/curl-ca-bundle.crt
$ git remote add origin https://mygithubuser:mygithubpwd@github.com/repoUser/repoName.git
$ git push origin master
proxyuser = අපගේ තොරතුරු තාක්ෂණ දෙපාර්තමේන්තුව විසින් මට පවරා ඇති ප්රොක්සි පරිශීලකයා, මගේ පරිගණකයේ, ක්රියාකාරී නාමාවලි පරිශීලකයා වෙත ප්රවේශ වීමට මම භාවිතා කරන්නේ එකම කවුළු පරිශීලකයා ය.
proxypwd = මගේ ප්රොක්සි පරිශීලකයාගේ මුරපදය
proxy.server.com:8080 = ප්රොක්සි නාමය සහ වරාය, මට එය පාලක පැනලය, අන්තර්ජාල විකල්ප, සම්බන්ධතා, ලාන් සැකසුම් බොත්තම, ප්රොක්සි සේවාදායක කොටස තුළ ඇති උසස් බොත්තම, පළමු (http) පේළියේ සේවාදායක නාමය සහ වරාය භාවිතා කරන්න. .
mygithubuser = මම github.com වෙත පිවිසීමට භාවිතා කරන්නා
mygithubpwd = මගේ github.com පරිශීලකයාගේ මුරපදය
repoUser = repo හි පරිශීලක හිමිකරු
repoName = repo හි නම
git config --global http.sslcainfo MY_NEW_CERTS_BUNDLE.crt
ප්ලස් සහතික විස්තර කර ඇති පරිදි බාගත simplicidade.org/notes/archives/2011/06/... (ස්තුති: stackoverflow.com/a/7206627/98528 ) මට ඒක කළා!
git://
ප්රොටෝකෝලය භාවිතා කරමින් ගබඩාවක් ක්ලෝන කිරීමට මා ඉල්ලා සිටින විට git තවමත් ක්රියා නොකරයි .
http_proxy
හි අගය සමඟ පද්ධති විචල්යයක් සකසන්න ProxyServer:Port
. සරලම විසඳුම එයයි. https_proxy
අදහස් දැක්වීමේදී ඩේෆු පෙන්වා ඇති පරිදි භාවිතා කරන්න .
Gitproxy (sleske සඳහන් කරන පරිදි) සැකසීම තවත් විකල්පයකි, නමුත් එයට "විධානයක්" අවශ්ය වේ, එය ඉහත විසඳුම තරම් සරල නොවේ.
යොමුව: http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html
http_proxy
HTTP URL https_proxy
සඳහා අවශ්ය වන අතර HTTPS URL සඳහා අවශ්ය වේ. විකල්පයක් ලෙස, කෙනෙකුට all_proxy
සියලු URL සඳහා සැකසිය හැකිය . (1)ENVIRONMENT
හි කොටස බලන්න . කෙසේ වෙතත්, git-config විකල්ප සැකසීමේදී, HTTP සහ HTTPS URL සඳහා භාවිතා වේ. බලන්න තුළ GIT-config (1) . http.proxy
http.proxy
ඔබේ ප්රොක්සි සේවාදායකය වින්යාස කිරීමේ විධාන රේඛාව ක්රියා නොකරන්නේ නම්, ඔබට බොහෝ විට .gitconfig සංස්කරණය කළ හැකිය (ඔබේ පැතිකඩෙහි මුල, එය C: ments ලේඛන සහ සැකසුම් සහ සමහර ජාල ධාවකය තුළ සැඟවිය හැක) සහ මෙය එක් කරන්න :
[http]
proxy = http://username:password@proxy.at.your.org:8080
YMMV කෙසේ වෙතත්, මෙය ආවරණය කරන්නේ විධාන රේඛා වින්යාසයේ පළමු පියවර පමණි. ඔබට පද්ධති git වින්යාසය සංස්කරණය කිරීමට සිදු විය හැකි අතර ඔවුන් එය සැඟවූ ස්ථානය ගැන මට අදහසක් නැත.
භාවිතා කිරීමට විකල්පයක් ලෙස git config --global http.proxy address:port
, ඔබට විධාන රේඛාවේ ප්රොක්සිය සැකසිය හැකිය:
git -c "http.proxy=address:port" clone https://...
වාසිය නම් ප්රොක්සිය නොනවත්වා සකසා නොතිබීමයි. Bash යටතේ ඔබට අන්වර්ථයක් සැකසිය හැකිය:
alias git-proxy='git -c "http.proxy=address:port"'
ඔබ උබුන්ටු භාවිතා කරන්නේ නම්, පහත සඳහන් දෑ කරන්න ...
පියවර 1: කෝක්ස්ක්රූ සවි කරන්න
$ sudo apt-get install corkscrew
පියවර 2: git-proxy.sh නමින් ස්ක්රිප්ට් එකක් ලියා පහත සඳහන් දෑ එක් කරන්න
#!/bin/sh
exec corkscrew <name of proxy server> <port> $*
# <name_of_proxy_server> and <port> are the ip address and port of the server
# e.g. exec corkscrew 192.168.0.1 808 $*
පියවර 3: ස්ක්රිප්ට් ක්රියාත්මක කළ හැකි කරන්න
$ chmod +x git-proxy.sh
පියවර 4: පරිසර විචල්යය සැකසීමෙන් GIT සඳහා ප්රොක්සි විධානය සකසන්න
$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"
දැන් වැනි git විධානයන් භාවිතා කරන්න
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
"$@"
ඒ වෙනුවට භාවිතා කළ යුතුය $*
. වැඩි විස්තර සඳහා ඔබේ ෂෙල් අත්පොත බලන්න.
.gitconfig
කවුළුවල ඇති ගොනු කිහිපයක් නිසා එකම ගැටලුවකට මුහුණ දුන් අතර, එය නිවැරදි කිරීමට පහත පියවර අනුගමනය කරන්න:
පියවර 1: විවෘත Git BASH
පියවර 2:.gitconfig
පහත දැක්වෙන විධානය ක්රියාත්මක කිරීම සඳහා බලන්න :
git config --list --global --show-origin
පියවර 3: පහත අන්තර්ගතය මෙහි පිටපත් කරන්න .gitconfig
:
[http]
proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
sslverify = false
[https]
proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
sslverify = false
[url "http://github.com/"]
insteadOf = git://github.com/
[user]
name = Arpit Aggarwal
email = aggarwalarpit.89@gmail.com
පහත සඳහන් දෑ ~ / .gitconfig ගොනුවට දැමීමට උත්සාහ කරන්න:
[http]
proxy = http://proxy:8080
[https]
proxy = http://proxy:8080
[url "https://"]
insteadOf = git://
Git ප්රොටෝකෝලය සඳහා (git: // ...), socat ස්ථාපනය කර පිටපතක් ලියන්න:
#!/bin/sh
exec socat - socks4:your.company.com:$1:$2
එය ක්රියාත්මක කළ හැකි බවට පත් කරන්න, එය ඔබගේ මාවතේ සහ ඔබේ ~/.gitconfig
කට්ටලයේ core.gitproxy
එම ස්ක්රිප්ටයේ නමට දමන්න .
socat STDIO PROXY:%proxy%:%1:%2,proxyport=%PROXYPORT%
set GIT_PROXY_COMMAND=path\to\script
Git වින්යාසය සමඟ පටලවා නොගෙන GIT ප්රොක්සිය භාවිතා කිරීමට භාවිතා කළ හැකිය .
මා දුටු දෙයක් මෙහි ඇති අතර බෙදා ගැනීමට අවශ්යයි:
git config --global http.proxy http://<proxy address>:<port number>
ඉහත ක්රමය ssh URL සඳහා ක්රියා නොකරනු ඇත (එනම්, git@github.com:<user name>/<project name>.git
):
git clone git@github.com:<user name>/<project name>.git // will not use the http proxy
අපි HTTPS වරාය හරහා ( https://help.github.com/en/articles/using-ssh-over-the-https-port ) SSH සකස් කළහොත් තත්වය වෙනස් නොවේ, මන්ද එය වරාය පමණක් වෙනස් කරයි (පෙරනිමියෙන් 22) ) ssh සම්බන්ධතාවය සම්බන්ධ වේ.
(ස්වදේශීය ඉංග්රීසි කථිකයෙකු නොවේ, කරුණාකර අවශ්ය නම් මගේ වචන ශෝධනය කරන්න)
මම වින්ඩෝස් එක්ස්පී වැඩ කරන ස්ථානයේ (රාජ්ය / ගොව්) වැඩ කරමි, එබැවින් මම මගේ පර්යේෂණ සිදු කර මෙය මෙහි සොයා ගත් අතර එය මට වැඩ කළේය. මෙය උපකාරී වේ යැයි සිතමි :)
Http_proxy පරිසර විචල්යය
ඔබ ප්රොක්සි සේවාදායකයක් හෝ ෆයර්වෝලයක් භාවිතා කරන්නේ නම්, විධාන රේඛාවෙන් යම් යූආර්එල් වෙත ප්රවේශ වීම සඳහා ඔබට http_proxy පරිසර විචල්යය සැකසීමට අවශ්ය විය හැකිය. උදාහරණය: පර්ල් සඳහා ppm ස්ථාපනය කිරීම හෝ ලිනක්ස් වල rpm යෙදීම, උබුන්ටු යාවත්කාලීන කිරීම
ප්රොක්සි සේවාදායකයේ ධාරක නාමය හෝ IP ලිපිනය සමඟ http_proxy විචල්යය සකසන්න: http_proxy = http: // [proxy.example.org]
ප්රොක්සි සේවාදායකයට පරිශීලක නමක් සහ මුරපදයක් අවශ්ය නම්, ඒවා පහත දැක්වෙන ආකෘතියට ඇතුළත් කරන්න: http_proxy = http: // [පරිශීලක නාමය: password@proxy.example.org]
ප්රොක්සි සේවාදායකය 80 හැර වෙනත් වරායක් භාවිතා කරන්නේ නම්, වරාය අංකය ඇතුළත් කරන්න: http_proxy = http: // [පරිශීලක නාමය: password@proxy.example.org: 8080]
වින්ඩෝස් එක්ස්පී
- පාලක පැනලය විවෘත කර පද්ධති නිරූපකය ක්ලික් කරන්න.
- උසස් පටිත්තෙහි, පරිසර විචල්යයන් මත ක්ලික් කරන්න.
- පද්ධති විචල්ය පැනලයේ නව ක්ලික් කරන්න.
- සුදුසු ප්රොක්සි තොරතුරු සමඟ http_proxy එක් කරන්න (ඉහත උදාහරණ බලන්න).
ලිනක්ස්, සොලාරිස් හෝ HP-UX
ඔබේ කවචයට විශේෂිත වූ විධානය භාවිතා කරමින් http_proxy පරිසර විචල්යය සකසන්න (උදා: කට්ටලය හෝ අපනයනය). මෙම වෙනස අඛණ්ඩව සිදු කිරීම සඳහා, කවචය සඳහා සුදුසු පැතිකඩ ගොනුවට විධානය එක් කරන්න. උදාහරණයක් ලෙස, bash හි, ඔබේ .bash_profile හෝ .bashrc ගොනුවට පහත දැක්වෙන රේඛාවක් එක් කරන්න:
- http_proxy = http: // [පරිශීලක නාමය: මුරපදය @ ධාරක නාමය: වරාය];
- අපනයනය $ http_proxy
මෙම පිළිතුරු වලට අමතරව, මෙම කරුණු 2 සලකා බැලීමට මට ප්රයෝජනවත් විය:
සත්යාපන ක්රමයක් ක්රියාත්මක කිරීමට කෙනෙකුට අවශ්ය විය හැකිය:
[http]
# https://github.com/git/git/blob/master/Documentation/config.txt
proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm
එසේම, සාමාන්යයෙන් එන්ටීඑල්එම් සත්යාපන යෝජනා ක්රමය සමඟ යමෙකුට පැහැදිලිව AD වසම සැපයීමට අවශ්ය විය හැකිය.
Git bash හි:
echo %userdomain%
ඒ අනුව http.proxy යාවත්කාලීන කරන්න:
git config --global http.proxy http://DOMAIN\\proxyuser:proxypwd@proxy.server.com:8080
කෙසේ වෙතත්, CURL ල logs ු-සටහන් එකතු කිරීමෙන් විමර්ශනයට සහාය විය හැකිය:
export GIT_CURL_VERBOSE=1
git config --global http.proxyAuthMethod basic
. මම මෙම වින්යාස පරාමිතිය සැකසෙන තුරු Git gersion 2.8.3 කිසිදු සත්යාපනයක් යවා නැත.
ඔබ සතුව ටොක්සි හෝ ප්රොක්සිචේන් ස්ථාපනය කර වින්යාස කර තිබේ නම්, ඔබට හැකිය
$ tsocks git clone <you_repository>
හෝ
$ proxychains git clone <you_repository>
එය කෙටි කිරීමට, මම සංකේතයක් ලින්ක් නිර්මාණය /usr/bin/p
සඳහා proxychains
, ඒ නිසා මම මේ වගේ එය භාවිතා කළ හැකිය
p git clone <you_repository>
ඕනෑම විධානයක් ප්රොක්සි කිරීමට මට එය භාවිතා කළ හැකිය,
p <cmd-need-be-proxied>
මාර්ගය වන විට, ප්රොක්සිචේන් දිගු කාලයක් යාවත්කාලීන නොකෙරේ, ඔබට ප්රොක්සිචියන්ස්-එන්ජී උත්සාහ කිරීමට අවශ්ය විය හැකිය
ටර්මිනලය මත git proxy සැකසීම
නම්
ගෝලීයව එක් වරක් එය සකසන්න
git config --global http.proxy username:password@proxy_url:proxy_port
git config --global https.proxy username:password@proxy_url:proxy_port
ඔබට එක් git ව්යාපෘතියක් සඳහා ප්රොක්සි සැකසීමට අවශ්ය නම් (සමහර git සම්බන්ධතා සඳහා ඔබට එකම ප්රොක්සියක් හෝ ඕනෑම ප්රොක්සියක් භාවිතා කිරීමට අවශ්ය නොවන අවස්ථා තිබිය හැක)
//go to project root
cd /bla_bla/project_root
//set proxy for both http and https
git config http.proxy username:password@proxy_url:proxy_port
git config https.proxy username:password@proxy_url:proxy_port
ඔබට වත්මන් ප්රොක්සි සැකසුම් පෙන්වීමට අවශ්ය නම්
git config --list
ඔබට ගෝලීයව ප්රොක්සි ඉවත් කිරීමට අවශ්ය නම්
git config --global --unset http.proxy
git config --global --unset https.proxy
ඔබට එක් git root සඳහා පමණක් ප්රොක්සි ඉවත් කිරීමට අවශ්ය නම්
//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy
මෙන්න ප්රොක්සි සැකසුම
git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>
මෙහි නිර්දේශිත බොහෝ පිළිතුරු මම අනුගමනය කළෙමි. පළමුව මට පහත දෝෂය ඇතිවිය:
මාරාන්තික: ' https://github.com/folder/sample.git/ ' වෙත ප්රවේශ වීමට නොහැකි විය : schannel: next InitializeSecurityContext අසමත් විය: නොදන්නා දෝෂයකි (0x80092012) - අවලංගු කිරීමේ ශ්රිතයට සහතිකය අවලංගු කිරීම පරීක්ෂා කිරීමට නොහැකි විය.
@ සාලීම් හමීඩි විසින් පහත දැක්වෙන විධානය අත්හදා බැලුවෙමි
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
නමුත් මට පහත දෝෂය ඇතිවිය:
මාරාන්තික: ' https://github.com/folder/sample.git/ ' වෙත ප්රවේශ විය නොහැක: සම්බන්ධ වීමෙන් පසු ප්රොක්සියෙන් HTTP කේතය 407 ලැබුණි.
ප්රොක්සි සේවාදායකයාට SSL සහතිකය සත්යාපනය කළ නොහැකි නම් මෙය සිදුවිය හැකිය. එබැවින් අපට එස්එස්එල් සත්යාපනය අක්රිය වී ඇති බව තහවුරු කර ගැනීමට අවශ්යය (විශ්වාසදායක නොවන වෙබ් අඩවි සඳහා නිර්දේශ නොකරයි), එබැවින් මම පහත සඳහන් පියවරයන් කර ඇති අතර එය ආර්පිට් විසින් නිර්දේශ කරන ලද නමුත් සුළු වෙනස්කම් සහිතව:
1. පළමුව පෙර ප්රොක්සි සැකසුම් ඉවත් කිරීමට වග බලා ගන්න:
git config --global --unset http.proxy
2. ඉන්පසු ලැයිස්තුගත කර gitconfig අන්තර්ගතය ලබා ගන්න
git config --list --show-origin
3. පහත දැක්වෙන පරිදි gitconfig ගොනුවේ අන්තර්ගතය යාවත්කාලීන කරන්න:
[http]
sslCAInfo = C:/yourfolder/AppData/Local/Programs/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
[https]
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
ප්රොක්සි මුරපද කේතීකරණ ගැටළු ඇති බැවින් මම ඉහත පිළිතුරු සියල්ලම අත්හදා බැලුවෙමි.
මෙම විධානය ක්රියාත්මක විය:
git config --global http.proxy http://username@proxy.example.com:PortNumber
ඔබගේ විධානයෙහි මුරපදය ඇතුළත් නොකරන්න. ඔබ ඕනෑම git repo එකකට සම්බන්ධ වීමට උත්සාහ කරන විට එය ගතිකව ඉල්ලනු ඇත.
වින්ඩෝස් භාවිතා කරන්නන් සඳහා: වැඩ කරන්නේ නම් git config
හෝ set http_proxy=
ක්රියා නොකරන්නේ නම්, මෙම පිළිතුර උදව් කළ හැක:
git://
සමඟ git ගබඩාවේ ප්රොටෝකෝලය ප්රතිස්ථාපනය කරන්න http://
. සටහන, ඔබට කෙසේ හෝ http_proxy
පළමුවැන්න සැකසීමට සිදුවේ .
මෙම පිටුවේ සෑම විසඳුමක්ම වෙහෙස නොබලා උත්සාහ කිරීමෙන් පසු, මගේ කාර්යය වූයේ ඒ වෙනුවට SSH යතුර භාවිතා කිරීමයි!