“Git clone git@remote.git” ධාවනය කිරීමේදී පරිශීලක නාමයක් සහ මුරපදයක් ලබා දෙන්නේ කෙසේද?


886

මේ වගේ HTTPS ඉල්ලීමකට පරිශීලක නාමයක් සහ මුරපදයක් ලබා දෙන්නේ කෙසේදැයි මම දනිමි:

git clone https://username:password@remote

නමුත් දුරස්ථයට පරිශීලක නාමයක් සහ මුරපදයක් ලබා දෙන්නේ කෙසේදැයි දැන ගැනීමට මම කැමතියි:

git clone git@remote.git

මම මේ වගේ උත්සාහ කළා:

git clone username:password@git@remote.git
git clone git@username:password@remote.git
git clone git@remote.git@username:password

නමුත් ඔවුන් වැඩ කර නැත.


4
ඔබට බැහැ. "@" ට පෙර ඇති "git" දැනටමත් පරිශීලක නාමයකි. ඔබට නිධිය URL (git@remote.get) ලැබුනේ කොහෙන්ද? ඔබට වෙනත් පරිශීලක නාමයක් සහ මුරපදයක් ලබා දිය යුතුය යන අදහස ඔබට ලැබුනේ කොහෙන්ද?
කෙන් තෝමස්

3
මගේ ගබඩාවේ URL හෙරොකු "git@heroku.com: zxy-helloworld.git" වෙතින්. මම ක්ලෝන කිරීමට සහ තල්ලු කිරීමට ඊමාක්ස් ෂෙල් භාවිතා කරමි. කවචය මුරපදය ඉල්ලුවහොත්, ඊමැක්ස් එල්ලනු ඇත. මෙය වින්ඩෝස් හි ඉමාක්ස්
සම්බන්ධීකරණය

පරිශීලක නාමය විද්‍යුත් තැපෑලක් නම් කුමක් කළ යුතුද? ඔබ එය ටයිප් කරන්නේ කෙසේද? myemail @ gmail.com @ example.com ?
කියොන් පෙරෙස්


Honey පැණි ප්‍රශ්නය GitHub විශේෂිත නොවේ.
Szczepan Hołyszewski

Answers:


1385

මයිකල් ෂාෆ්ගේ ප්‍රකාශය මත පදනම්ව:

ඔබට මුරපදය අතහැර දැමිය හැකි අතර එමඟින් එය ඔබගේ බෑෂ් ඉතිහාස ගොනුවට ලොග් නොවනු ඇත:

git clone https://username@github.com/username/repository.git

එය ඔබගේ මුරපදය ඉල්ලා සිටිනු ඇත.

විකල්පයක් ලෙස, ඔබට භාවිතා කළ හැකිය:

git clone https://username:password@github.com/username/repository.git

මේ ආකාරයෙන් මට වැඩ කළේ GitHub ගබඩාවකිනි.


5
එය එක හා සමාන විය යුතු නැත. ඔබේ සගයා විසින් git repo නිර්මාණය කර ඔබ වෙනත් ගිණුමක් ලෙස පුරනය වන්නේ නම්, ඒවා සමාන නොවේ.
holgac

51
මෙම ගොනුව සඳහා මුරපදය URL එකේ තැබීම සුදුසු නොවේ .git / config. ආරක්ෂිත නොවේ, ssh යතුර භාවිතා කිරීම වඩා හොඳය
zetanova

56
RMrDuk කිසිදු ගැටළුවක් නැත, එයින් බේරෙන්න (% 40 iirc ලෙස).
බෙන්ජමින් ග ru න්බෝම්

60
ඔබට මුරපදය අතහැර දැමිය හැකිය : git clone https://username@github.com/username/repository.git. git ඔබෙන් විමසනු ඇති අතර එය .git / config හෝ ඔබගේ
බෑෂ්

40
ඔබට පේළියේ ආරම්භයේ දී 'අවකාශය' ටයිප් කළ හැකි අතර එමඟින් ලිනක්ස් ඉතිහාසයේ විධානය ගබඩා නොකරයි
නිකොලස් සොසෝල්

222

මෙම user@host:path/to/repoආකෘතිය Git වෙත ප්රවිෂ්ට වීම සඳහා තිබෙන භාවිතා කිරීමට පවසනවා hostපරිශීලක නාමය සමඟ user. සිට git help clone:

Ssh ප්‍රොටෝකෝලය සමඟ විකල්ප scp වැනි සින්ටැක්ස් ද භාවිතා කළ හැකිය:

[user@]host.xz:path/to/repo.git/

ඊට පෙර කොටස @පරිශීලක නාමය වන අතර සත්‍යාපන ක්‍රමය (මුරපදය, පොදු යතුර යනාදිය) තීරණය වන්නේ ssh මිස Git නොවේ. දුරස්ථ සේවාදායකයේ වින්‍යාසය අනුව ssh මුරපදයක් පවා භාවිතා නොකරන බැවින් Gsh හට මුරපදයක් ssh වෙත යැවීමට හැකියාවක් නැත.

භාවිතය ssh-agentටයිප් මුරපද සියලු කාලය වළක්වා ගැනීමට

ඔබේ ssh මුරපදය නිතරම ටයිප් කිරීමට ඔබට අවශ්‍ය නැතිනම්, සාමාන්‍ය විසඳුම වන්නේ පොදු / පෞද්ගලික යතුරු යුගලයක් ජනනය කිරීම, දුරස්ථ සේවාදායකයේ ඔබේ ~/.ssh/authorized_keysගොනුවේ පොදු යතුර තැබීම සහ ඔබේ පුද්ගලික යතුර පැටවීමයි ssh-agent. එක් වරක් පුරනය වීමට SSH හරහා Git වින්‍යාස කිරීමද බලන්න , ssh ප්රධාන පරිශීලක රහස්පදයන් මත GitHub උපකාරය පිටුව , gitolite ගේ ssh ප්රලේඛනය සහ Heroku ගේ ssh යතුරු ප්රලේඛනය .

GitHub හි බහු ගිණුම් අතර තේරීම (හෝ හෙරොකු හෝ ...)

ඔබට GitHub හෝ Heroku වැනි ස්ථානයක ගිණුම් කිහිපයක් තිබේ නම්, ඔබට බහු ssh යතුරු ඇත (අවම වශයෙන් එක් ගිණුමකට). ඔබට ලොග් වීමට අවශ්‍ය ගිණුම තෝරා ගැනීමට, කුමන පුද්ගලික යතුර භාවිතා කළ යුතුදැයි ඔබට sshපැවසිය යුතුය .

උදාහරණයක් ලෙස, ඔබට GitHub ගිණුම් දෙකක් ඇතැයි සිතමු: fooසහ bar. ඔබේ SSH ප්රධාන fooවේ ~/.ssh/foo_github_idසඳහා, ඔබේ SSH ප්රධාන barවේ ~/.ssh/bar_github_id. ඔබ වෙත පිවිසීමට ඔබට අවශ්ය git@github.com:foo/foo.gitඔබේ fooගිණුම හා git@github.com:bar/bar.gitඔබගේ barගිණුම. ඔබ පහත සඳහන් දෑ ඔබගේ ~/.ssh/config:

Host gh-foo
    Hostname github.com
    User git
    IdentityFile ~/.ssh/foo_github_id
Host gh-bar
    Hostname github.com
    User git
    IdentityFile ~/.ssh/bar_github_id

ඉන්පසු ඔබ නිධිය දෙක පහත පරිදි ක්ලෝන කරනු ඇත:

git clone gh-foo:foo/foo.git  # logs in with account foo
git clone gh-bar:bar/bar.git  # logs in with account bar

Ssh සම්පූර්ණයෙන්ම මග හැරීම

සමහර සේවාවන් ssh ට විකල්පයක් ලෙස HTTP ප්‍රවේශය සපයයි:

අවවාදයයි : ඔබගේ මුරපදය ක්ලෝන URL වෙත එක් කිරීමෙන් ඔබගේ සාමාන්‍ය මුරපදය Git තුළ ගබඩා කිරීමට Git හේතු වේ .git/config. HTTP භාවිතා කරන විට ඔබගේ මුරපදය ආරක්ෂිතව ගබඩා කිරීමට, අක්තපත්‍ර සහායකයකු භාවිතා කරන්න. උදාහරණයක් වශයෙන්:

git config --global credential.helper cache
git config --global credential.https://github.com.username foo
git clone https://github.com/foo/repository.git

ඉහත සඳහන් සෑම මිනිත්තු 15 කට වරක් (පෙරනිමියෙන්) ඔබගේ මුරපදය ඉල්ලීමට Git හේතු වේ. විස්තර git help credentialsසඳහා බලන්න.


SSH සමඟ git ක්‍රියා කරන ආකාරය පිළිබඳ හොඳම පැහැදිලි කිරීම මෙයයි. මගේ අවබෝධය නම්, ඔබ git@githost.com: path / to / repo.git නියම කළ විට, එය පරිශීලකයා විසින්ම git බව effectively ලදායී ලෙස git ට පවසන අතර එය ඔබගේ අක්තපත්‍ර (පොදු යතුර) ssh-agent වෙතින් ලබා ගත යුතුය. "Githost.com" සත්කාරක කරන්න.
ඇනෙල්

45

@ බාසෙටාසන්ගේ පිළිතුරේ අදහස් දැක්වීමේදී losplosco ඔබට භාවිතා කළ හැකි බව සඳහන් කළේයgit clone https://<token>@github.com/username/repository.git අවම වශයෙන් GitHub වෙතින් ක්ලෝන කිරීමට බවයි. ක්ලෝනකරණය ස්වයංක්‍රීය කිරීමට උත්සාහ කරන අතරතුර මා කළාක් මෙන් යමෙකුට මෙම පිළිතුර හමු වුවහොත් එය කරන්නේ කෙසේද යන්න පිළිබඳව මම පුළුල් වනු ඇතැයි මම සිතුවෙමි.

මෙය කරන්නේ කෙසේද යන්න පිළිබඳ ඉතා පහසු මාර්ගෝපදේශයක් GitHub සතුව ඇත , නමුත් ස්වයංක්‍රීය අරමුණු සඳහා ඒ සියල්ල එක පේළියකට ඇතුළත් කිරීමට ඔබට අවශ්‍ය නම් කුමක් කළ යුතුද යන්න එය ආවරණය නොකරයි. ක්ලෝන URL වෙත ටෝකනය එකතු කිරීමෙන් එය සාමාන්‍ය පෙළ තුළ ගබඩා වන බවට එය අනතුරු අඟවයි .git/config. මෙය පැහැදිලිවම සෑම භාවිත අවස්ථාවකම ආරක්ෂක අවදානමකි, නමුත් මම රෙපෝ මකා දැමීමට සහ ටෝකනය අවලංගු කිරීමට සැලසුම් කර ඇති බැවින්, මම එය ගණන් ගන්නේ නැත.

1. ටෝකනයක් සාදන්න

ටෝකනයක් ලබා ගන්නේ කෙසේද යන්න පිළිබඳ සම්පූර්ණ මඟ පෙන්වීමක් මෙහි GitHub සතුව ඇත , නමුත් මෙන්න TL; DR.

  1. වෙත යන්න සැකසීම්> සංවර්ධක සැකසීම්> පුද්ගලික ප්රවේශ කාර්යභාරය අගයනු ( මෙහි ඍජු සම්බන්ධයක් නෑ )
  2. "නව ටෝකනයක් සාදන්න" ක්ලික් කර ඔබගේ මුරපදය නැවත ඇතුළත් කරන්න. (h ere තවත් සෘජු සබැඳියක් )
  3. ඒ සඳහා විස්තරයක් / නමක් සකසන්න, "repo" අවසරය පරීක්ෂා කර පිටුවේ පතුලේ ඇති "ටෝකන සාදන්න" බොත්තම ඔබන්න.
  4. ඔබ පිටුවෙන් පිටවීමට පෙර ඔබගේ නව ටෝකනය පිටපත් කරන්න

2. රෙපෝව ක්ලෝන කරන්න

@Plosco ලබා දුන් විධානයට සමානය, git clone https://<token>@github.com/<username>/<repository>.gitප්‍රතිස්ථාපනය කරන්න <token>, <username>සහ <repository>ඔබේ තොරතුරු කුමක් වුවත්.

ඔබට එය විශේෂිත ෆෝල්ඩරයකට ක්ලෝන කිරීමට අවශ්‍ය නම්, අවසානයේදී ෆෝල්ඩරයේ ලිපිනය එලෙසම ඇතුළත් කරන්න: git clone https://<token>@github.com/<username>/<repository.git> <folder>කොහේද <folder>, ඔබ එය අනුමාන කළා, එය ක්ලෝන කිරීමට ෆෝල්ඩරය! ඔබට පාඨමාලා භාවිතය හැකි ., ..,~ ආදිය, මෙහි වෙනත් තැන්වල ඔබට හැකි වගේ.

3. කිසිදු හෝඩුවාවක් තබන්න එපා

ඔබ කරන දෙය කෙතරම් සංවේදීද යන්න මත පදනම්ව මේ සියල්ල අවශ්‍ය නොවනු ඇත.

  • ඔබට යම් කාලයක් තිස්සේ එය භාවිතා කිරීමේ අභිප්‍රායක් නොමැති නම්, එම ටෝකනය එල්ලා තැබීමට ඔබට අවශ්‍ය නොවනු ඇත, එබැවින් නැවත ටෝකන පිටුවට ගොස් ඒ අසල ඇති මකන්න බොත්තම ඔබන්න.
  • ඔබට නැවත repo අවශ්‍ය නොවේ නම්, එය මකන්න rm -rf <folder>.
  • නැවත වරක් repo අවශ්‍ය නම්, නමුත් එය නැවත ස්වයංක්‍රීය කිරීමට අවශ්‍ය නොවන්නේ නම්, ඔබට දුරස්ථය ඉවත් කිරීමෙන් git remote remove originහෝ ධාවනය කිරීමෙන් ටෝකනය ඉවත් කළ git remote set-url origin https://github.com/<username>/<repository.git>හැකිය.
  • ටෝකනය එහි ලොග් වී නොමැති බවට වග බලා ගැනීම සඳහා ඔබේ බෑෂ් ඉතිහාසය හිස් කරන්න. මෙය කිරීමට බොහෝ ක්‍රම තිබේ, මෙම ප්‍රශ්නය සහ මෙම ප්‍රශ්නය බලන්න . කෙසේ වෙතත්, ඉහත විධානයන් සියල්ලම ආරම්භ කිරීම සඳහා ගබඩා කිරීම වැළැක්වීම සඳහා ඉඩක් සහිතව සකස් කිරීම පහසු විය හැකිය.

මම ගැති නොවන බව සලකන්න, එබැවින් ඉහත සඳහන් කිසිම ආකාරයක අධිකරණ වෛද්‍ය වැඩක් සඳහා කිසිදු හෝඩුවාවක් ඉතිරි නොවන බවට අර්ථයෙන් සුරක්ෂිත නොවනු ඇත.


2
https://<token>@github.comමගේ ද්වාරය සමඟ පිළිගත්තේ නැත, මට භාවිතා කිරීමට සිදුවියhttps://oauth2:<token>@github.com
මුෂිපීස්

26

බොහෝ පිළිතුරු තිබුණද, පරිශීලක නාමය හෝ මුරපදය තුළ විශේෂ අක්ෂර ඇති විට මම නැවත නැවතත් ගැටලුවට මුහුණ දෙමි.

URL මඟින් ඔබගේ පරිශීලක නාමය සහ මුරපදය git සඳහා සංකේතවත් කරන්න, ඉන්පසු එය URL හි කොටසක් ලෙස භාවිතා කරන්න (ආරක්ෂක අවශ්‍යතාවයක් නොමැති විට).

පරිශීලක නාමයේ URL කේතනය කළ අගය කියන්න

'පරිශීලක + 1' පරිශීලක% 2B1 වේ

සහ මුරපදයේ URL කේතනය කළ අගය

'ආයුබෝවන් @ 1234' යනු පිළිගැනීම% 401234 වේ

එවිට ඔබගේ GIT ක්ලෝන URL එක පෙනෙනු ඇත,

git clone https://user%2B1:Welcome%401234@actual-git-url-for-the-repo පරිපූර්ණව ක්‍රියා කරන අතර,

git clone https: // user + 1: සාදරයෙන් පිළිගනිමු @ 1234 @ real-git-url-for-the-repo ඔබට දෝෂ 403 ක් ලබා දෙයි

මෙය උපකාරී වේ යැයි සිතමි.

අන්තර්ජාලය හරහා URL කේතනය කිරීමට අවශ්‍ය නම්: https://www.urlencoder.org/


14

මම මෙම ගැටළුව පහත පරිදි විසඳා ගත්තෙමි:

රූප විස්තරය මෙහි ඇතුළත් කරන්න


11
ඔබේ මුරපදය විධාන රේඛාවේ ටයිප් කිරීම කිසි විටෙකත් හොඳ අදහසක් නොවේ. ඔබේ පද්ධතිය විධාන රේඛා ඉතිහාසය ගොනුවක ගබඩා කළ හැකි බව ඔබ දැන සිටියාද? (උදා: ලිනක්ස් .bash_history නමින් සඟවා ගොනුව)
ඔගස්ටෝ

නිවැරදි. සමහර විට ඉතා පහසු විය හැකි මා මෙය කරන විට හෝ මෙවැනි දෙයක් කරන සෑම විටම මම ඉතිහාසයෙන් භාවිතා කළ විධානය මකා දමමි (history -d).
ෆ්‍රැන්චෙස්කෝ මාර්චෙට්ටි-ස්ටාසි

6
@ ෆ්‍රැන්චෙස්කෝ මාර්චෙට්ටි-ස්ටාසි ඔබට විධානය මකා දැමීමට අවශ්‍ය නැත, විධානය ආරම්භයේ දී ඉඩක් භාවිතා කරන්න, එය ඉතිහාසයේ කිසි විටෙකත් ගබඩා නොවනු ඇත.
ඉෂ්තියැක් හුසේන්

ඔව් - මම එය ඉගෙන ගත්තේ මාස කිහිපයකට පෙර, යුනික්ස් පද්ධති පිළිබඳ වසර 30 කට පමණ පසු ... මට ලැජ්ජයි :)
ෆ්‍රැන්චෙස්කෝ මාර්චෙට්ටි-ස්ටාසි

12

ඔබේ තර්කය ගැටළුවක් නිර්මාණය කරන්නේ නම් ඒවා වෙනුවට ආදේශ කිරීමට මෙම තර්ක අනුගමනය කරන්න:

! # $ & ' ( ) * + , / : ; = ? @ [ ]

% 21% 23% 24% 26% 27% 28% 29% 2A% 2B% 2C% 2F% 3A% 3B% 3D% 3F% 40% 5B% 5D

උදාහරණයක් ලෙස-

සත්‍ය URL: https://usern@me:p@ssword@git/reponame.git

භාවිතා කිරීමට විසඳුම් URL: https://usern%40me:p%40ssword@git/reponame.git


1
මෙය මා සොයන නිශ්චිත ගැටළුව වූ අතර පිළිතුර විශිෂ්ට ලෙස ක්‍රියාත්මක විය. ගොඩක් ස්තුතියි.
invinciblemuffi

10

වින්ඩෝස් හි, පහත දැක්වෙන පියවර මඟින් GitHub පිවිසුම් කවුළුව නැවත ක්‍රියාත්මක කළ යුතුය git clone:

  • "අක්තපත්‍ර කළමනාකරු" සඳහා ආරම්භක මෙනුව සොයන්න
  • "වින්ඩෝස් අක්තපත්‍ර" තෝරන්න
  • Git හෝ GitHub හා සම්බන්ධ ඕනෑම අක්තපත්‍ර මකන්න

ප්‍රති .ලය


5
git config --global core.askpass

එකම ආකාරයකින් ක්ලෝන කිරීමට පෙර මෙය පළමුව ධාවනය කරන්න, සවි කළ යුතුය!


3
එය උත්සාහ කළා, තවමත් එය ඉල්ලන්නේ නැහැ.
මාර්ටන් කීෆ්ට්

වෙනත් වින්‍යාසයන් අවුල් කළ හැකි බැවින් ගෝලීය වින්‍යාසය සැකසීම කිසි විටෙකත් හොඳ අදහසක් නොවේ.
මාටින්

2

ඔබ භාවිතා කරන්නේ නම් http/httpsසහ කිසිදු පරිශීලක ආදානයක් හෝ කිසිදු පරිශීලක විමසුමක් අවශ්‍ය නොවී ක්‍රියාවලිය සම්පුර්ණයෙන්ම ස්වයංක්‍රීය කිරීමට ඔබ බලාපොරොත්තු වන්නේ නම් (නිදසුනක් ලෙස: සීඅයි / සීඩී නල මාර්ගයක් තුළ), ඔබට පහත දැක්වෙන ප්‍රවේශය භාවිතා කළ හැකියgit credential.helper

GIT_CREDS_PATH="/my/random/path/to/a/git/creds/file"
# Or you may choose to not specify GIT_CREDS_PATH at all.
# See https://git-scm.com/docs/git-credential-store#FILES for the defaults used

git config --global credential.helper "store --file ${GIT_CREDS_PATH}"
echo "https://alice:${ALICE_GITHUB_PASSWORD}@github.com" > ${GIT_CREDS_PATH}

එහිදී ඔබට එය සැකසීමට තෝරා ගත හැකිය ALICE_GITHUB_PASSWORDපෙර විචල්ය විචල්යයක් පෙර ෂෙල් විධානයකින් හෝ ඔබේ නල මාර්ග වින්යාසයෙන් .

"ගබඩා" මත පදනම් වූ git-credential-helper මුරපද සහ අගයන් සරල පෙළෙහි ගබඩා කරන බව මතක තබා ගන්න. එබැවින් ඔබගේ ටෝකන / මුරපදයට ඉතා සීමිත අවසරයන් ඇති බවට වග බලා ගන්න.


දැන් පාවිච්චි කරන්න https: //alice@github.com/my_repo.git ඕනෑම තැනක ඔබගේ ස්වයංක්රීය පද්ධතිය අවශ්යතා ප්රති ලබා ගැනීමට - එය සඳහා අක්තපත්ර භාවිතා කරනු ඇත aliceතුල github.comGIT-අක්තපත්ර-සහකාරියක් විසින් ගබඩා ලෙස.


1

මෙය විශිෂ්ට ස්ටැක් පිටාර ගැලීමේ ප්‍රශ්නයක් වන අතර, පිළිතුරු ඉතා උපදේශාත්මක වී ඇති අතර, මෑතදී මා මුහුණ දුන් කරදරකාරී ගැටලුවක් විසඳීමට මට හැකි විය.

මා වැඩ කරන සංවිධානය Atlassian's BitBucketනිෂ්පාදන භාවිතා කරයි (ගිතුබ් නොවේ), මූලික වශයෙන් ඔවුන්ගේ GitHub හි අනුවාදය වන අතර එමඟින් ගබඩාවන් සම්පූර්ණයෙන්ම පරිශ්‍රයේ සුරක්ෂිත කර ගත හැකිය. මම @coordinate හා සමාන ගැටලුවකට මුහුණ දෙමින් සිටියෙමි, එහි දී මා පරීක්ෂා කළ නව ගබඩාවක් සඳහා මගේ මුරපදය අවශ්‍ය විය. මගේ අක්තපත්‍ර ගෝලීය වශයෙන් සැමට සුරකිනු ලැබීයBitBucket ව්‍යාපෘති , එබැවින් අක්තපත්‍ර නැතිවීමට හේතු වූයේ කුමක්දැයි මට විශ්වාස නැත.

කෙටියෙන් කිවහොත්, මට පහත දැක්වෙන GIT විධානයට ඇතුළු වීමට හැකි විය ( මගේ පරිශීලක නාමය පමණක් සැපයීම ), එමඟින් මුරපදය ඉල්ලා සිටින ලෙස Git හි අක්තපත්‍ර කළමනාකරුගෙන් ඉල්ලා සිටි අතර, පසුව මට එය සුරැකීමට හැකි විය.

git clone https://user@code.domain.org/git/[organization]/[team]/[repository.git]

සටහන: වරහන් කරන ලද නාමාවලි උප-මාර්ග හුදෙක් අභ්‍යන්තර යොමු කිරීම් වලට යොමු වන අතර එය ඔබට වෙනස් වේ!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.