Git තල්ලු කිරීම සඳහා පරිශීලක නාමය සහ මුරපදය අවශ්‍ය වේ


1463

මම මගේ GitHub ගිණුමේ සිට මගේ පරිගණකයට Git ගබඩාවක් ක්ලෝන කළා.

මගේ පරිගණකය සහ ලැප්ටොප් පරිගණකය සමඟ වැඩ කිරීමට මට අවශ්‍යය, නමුත් එක් GitHub ගිණුමක් සමඟ.

මම මගේ පරිගණකය භාවිතා කර GitHub වෙතට තල්ලු කිරීමට හෝ අදින්නට උත්සාහ කරන විට, එයට පරිශීලක නාමයක් සහ මුරපදයක් අවශ්‍ය වේ, නමුත් මම ලැප්ටොප් භාවිතා කරන විට නොවේ!

මා මැදිහත් වන සෑම අවස්ථාවකම මගේ පරිශීලක නාමය සහ මුරපදය ටයිප් කිරීමට මට අවශ්‍ය නැත  origin. මට මෙහි නැති වී ඇත්තේ කුමක්ද?


1
ඔව්, නමුත් මා කුමක් කළ යුතුද? මම යතුරු පුවරුව ජනනය කළේ වෙන කුමක් ද?
ටූකූල්

2
ඔබ ඔබේ ගිතුබ් ගිණුම ( github.com/account/ssh ) සමඟ පබ්කි ලියාපදිංචි කළ යුතු අතර නිවැරදි පරිශීලක නාමය භාවිතා කිරීමට ඔබේ SSH සේවාදායකයා වින්‍යාස කරන්න.
jwodder

1
මම ඒ සියල්ල කර ඇති නමුත් තවමත් එයට පරිශීලක නාමය සහ මුරපදය අවශ්‍ය වේ! පළාත් සභා දෙකක් සහිත එක් ගිණුමක් භාවිතා කළ හැකිද?
TooCooL

1
මෙම ප්‍රශ්නය මේ සඳහා ඔබගේ සියලු විකල්පයන් හොඳින් ආවරණය කරයි: stackoverflow.com/questions/5343068/…
ford

2
තවදුරටත් ssh වෙත මාරු වීමට අවශ්‍ය නැත. HTTPS සමඟ ද එය කළ හැකිය. මගේ පිළිතුර පරීක්ෂා කරන්න.
වරුන් අචාර්

Answers:


1989

පොදු හේතුවක් වන්නේ SSH වෙනුවට පෙරනිමි (HTTPS) භාවිතා කර ක්ලෝන කිරීමයි. ඔබේ ගබඩාවට ගොස් "ක්ලෝන් හෝ ඩවුන්ලෝඩ් කරන්න" ක්ලික් කිරීමෙන් පසුව, URL ක්ෂේත්‍රයට ඉහළින් ඇති "SSH භාවිතා කරන්න" බොත්තම ක්ලික් කිරීමෙන් සහ ඔබේ ප්‍රභවයේ දුරස්ථ URL යාවත්කාලීන කිරීමෙන් ඔබට මෙය නිවැරදි කළ හැකිය:

git remote set-url origin git@github.com:username/repo.git

මෙය GitHub හි ලේඛනගත කර ඇත: HTTPS සිට SSH වෙත දුරස්ථ URL මාරු කිරීම .


61
හා URL එක වෙනස් කරන්නේ කෙසේදැයි රූපය වෙත, මෙහි යන්න: stackoverflow.com/a/2432799/60488 (ස්පොයිලර්: git remote set-url origin git://new.url.here)
ජොහාන් Kool

141
ආරක්ෂක සීමාවන් සඳහා ඔබට ssh භාවිතා කළ නොහැකි නම් (මා වැනි) ඔබට කළ හැකිය: git remote set-url origin https://name:password@github.com/repo.git (මෙහි අදහස් දැක්වීමෙන් උපුටා ගන්නා ලදි)
un නෝ බෙරිසෝ

135
HTTPS සමඟ ක්ලෝන කිරීම පොදු වැරැද්දක් වන්නේ ඇයි? GitHub දැන් HTTPS භාවිතා කිරීම නිර්දේශ කරයි.
ඩෙනිස්

8
defaultsmftre පෙරනිමියෙන් එය එසේ වේ, නමුත් ඔබේ අක්තපත්‍ර හැඹිලි කිරීමට ඔබට සහායකයකු භාවිතා කළ හැකිය .
ඩෙනිස්

28
Permission denied (publickey)මෙම මාර්ගෝපදේශය භාවිතා කරමින් මගේ ස්ථාවර : help.github.com/articles/generating-ssh-keys .
වෝල්ට්රෙවෝ

409

Git නිධි සමඟ ස්ථිරවම සත්‍යාපනය කිරීම

අක්තපත්‍ර හැඹිලි සක්‍රීය කිරීම සඳහා පහත විධානය ක්‍රියාත්මක කරන්න :

$ git config credential.helper store
$ git push https://github.com/owner/repo.git

Username for 'https://github.com': <USERNAME>
Password for 'https://USERNAME@github.com': <PASSWORD>

හැඹිලි කල් ඉකුත්වීමද ඔබ සඳහන් කළ යුතුය ,

git config --global credential.helper 'cache --timeout 7200'

අක්තපත්‍ර හැඹිලි සක්‍රීය කිරීමෙන් පසු එය තත්පර 7200 ක් (පැය 2 ක්) හැඹිලිය .


ඔබට දුරස්ථ යූආර්එල් සමඟද වෙනස් කිරීමට සිදුවනු ඇත. git remote set-url origin https://git@github.com/<owner>/<repo>.git මෙය 2 එෆ්ඒ සමඟද ක්‍රියා කරයි
බ්‍රොන් ඩේවිස්

16
මෙය පිළිගත් පිළිතුර විය යුතුය. එය හරියටම ප්‍රශ්නයට පිළිතුරු සපයයි.
ඒබ්‍රහම් ටීඑස්

ආරක්ෂක අරමුණු සඳහා එය උබුන්ටු ලිපිගොනු වලින් 7200 න් පසු ස්වයංක්‍රීයව මකා දැමිය හැකිද?
usama

හෝ පැය 12 ක් සඳහා 43,200 කි. ඔබ දිනකට එක් වරක් පිවිසෙන්න. සමහරුන්ට එය වඩාත් සාධාරණ විය හැකිය.
Urasquirrel

මෙය උත්සාහ කර බලන්න - ලැබුණා:fatal: protocol 'https' is not supported
ජොයෙල්

136

මට දැන් එකම ගැටලුවකට මුහුණ දීමට සිදු වූ අතර, මට හමු වූ සරලම විසඳුම වූයේ HTTPS එකක් වෙනුවට SSH URL භාවිතා කිරීමයි:

ssh://git@github.com/username/repo.git

මෙය නොවේ:

https://github.com/username/repo.git

ඔබ දැන් වලංගුභාවය හැකි පමණක් , ඒ වෙනුවට ඇති SSH ප්රධාන usernameහා password.


1
ගැටළුව විසඳීමට වඩාත්ම පහසු ක්‍රමය, දුරස්ථ සම්භවයක් ඇති URL සංස්කරණය කරන්න. එච්චරයි. සිදු විය. ස්තූතියි!
JOM

1
මෙය මා වෙනුවෙන් වැඩ කළ නමුත් පළමුව මට මෙය ආමන්ත්‍රණය කිරීමට අවශ්‍ය විය: stackoverflow.com/questions/2643502/…
ශ්‍රීධර් සර්නොබත්

SSH යතුර සැකසීමට ඔබට help.github.com/articles/connecting-to-github-with-ssh
ksridhar

121

SSH වෙත වෙනස් වීමට අමතරව, ඔබේ මුරපදය පැහැදිලි පා in යක් තුළ තැබීමට ඔබට අවශ්‍ය නැතිනම් ඔබට HTTPS භාවිතා කළ හැකිය. මෙය ඔබගේ තුළට දමන්න ~/.netrc, එය ඔබගේ පරිශීලක නාමය / මුරපදය ඉල්ලන්නේ නැත (අවම වශයෙන් ලිනක්ස් සහ මැක් මත):

machine github.com
       login <user>
       password <password>

එකතු කිරීම (VonC හි දෙවන අදහස බලන්න): වින්ඩෝස් හි ගොනු නාමය වේ%HOME%\_netrc .

ඔබට සංකේතනය කිරීමට අවශ්‍ය නම් VonC හි පළමු අදහසද කියවන්න.

ඔබට Git 1.7.10 හෝ අළුත් ඒවා තිබේ නම් භාවිතා කළ හැකි තවත් එකතු කිරීමක් (user137717 ගේ අදහස බලන්න) .

අක්තපත්‍ර සහායකයකු භාවිතා කර ඔබගේ GitHub මුරපදය Git තුළ හැඹිලි කරන්න :

ඔබ HTTPS භාවිතයෙන් GitHub ගබඩාවන් ක්ලෝන කරන්නේ නම්, ඔබට GitHub සමඟ කතා කරන සෑම අවස්ථාවකම ඔබගේ GitHub පරිශීලක නාමය සහ මුරපදය මතක තබා ගැනීමට Git ට පැවසීමට ඔබට විශ්වාසදායක සහායකයකු භාවිතා කළ හැකිය.

මෙය ලිනක්ස්, මැක් සහ වින්ඩෝස් වලද ක්‍රියා කරයි.


3
ඔව්, එය ලිනක්ස් මත ක්‍රියා කරයි, නමුත් වින්ඩෝස් හි gitbash සඳහා ක්‍රියා නොකරයි.
ඩීල්සන් විකුණුම්

3
ol ඩොල්මන් ඔබ අදහස් කරන දේ මට පෙනේ, නමුත් ඔබේ මුරපදය පැහැදිලි පා text යක තැබීමට ඔබ සිතන්නේ නම්, ඔබට එය සංකේතනය කළ හැකිය;) stackoverflow.com/a/18362082/6309 බලන්න . එය ගිතුබ්හි
VonC

3
Ales ඔබේ ගොනුව අමතන්නේ නම් %HOME%\_netrc(ඒ වෙනුවට ~/.netrc) ඩොස් සැසියකින් හෝ වින්ඩෝස් හි ගිට් බෑෂ් එකකින් එය හොඳින් ක්‍රියාත්මක වේ. එම ගොනුව සංකේතනය කිරීමට stackoverflow.com/a/18362082/6309 ද බලන්න .
VonC

1
මෙය ලිනක්ස් වල ඉතා හොඳින් ක්‍රියා කරයි, විශේෂයෙන් VPN හරහා git භාවිතා කරයි.
ඉවාන් හූ

3
ඔබට එය පැහැදිලි පා text යකට හෝ සංකේතනය කිරීමට අවශ්‍ය නොවේ. සහායක උපයෝගීතාව එය ඔබ වෙනුවෙන් හැඹිලිගත කරන අතර එය සැකසීමට තත්පර 30 ක් ගතවේ. help.github.com/articles/caching-your-github-password-in-git/…
user137717

88

පෙර පිළිතුරු වලින් ව්‍යාකූල වූ ආරම්භකයින් සඳහා, ඔබට කළ හැක්කේ:

git remote -v

එය වැනි දෙයක් සමඟ ප්‍රතිචාර දක්වනු ඇත

origin    https://yourname@github.com/yourname/yourrepo.git (fetch)
origin    https://yourname@github.com/yourname/yourrepo.git (push)

එවිට ඔබට වෙනත් බොහෝ අය යෝජනා කර ඇති විධානය ක්‍රියාත්මක කළ හැකිය, නමුත් දැන් ඔබ ඔබේ නම සහ ඔබේ වාර්තාව ඉහළින් දනී, එබැවින් ඔබට ඉහත සිට කපා ඇලවිය yourname/yourrepo.gitහැකිය:

git remote set-url origin git@github.com:yourname/yourrepo.git

1
මම මෙය උත්සාහ කළා. එය paraphraseසෑම විටම මගෙන් ඉල්ලයි . මම එකක් සකසා නැත
සමයෝ

වෙනුවට සිදුවන්නේ yourrepoකුමක්ද?
රාපි

2
Ap රාෆි දුව git remote -vගොස් එළියට එන දේ බලන්න
ඩේවිඩ්

1
වෙනත් පිළිතුරු මෙම උපදෙස් සකස් කළ යුතුය.
බෙනට් බ්‍රවුන්

57

ඔබ විසින් SSH භාවිතා කරන්නේ නම්, හා ඔබේ පෞද්ගලික යතුර මුරවදනක් සංකේතනය නම්, එසේ නම් ඔබ තවමත් පෞද්ගලික යතුර සඳහා මුරවදන / මුර පදය ඔබ Git ජාලය සමග මෙහෙයුම් කරන විට මතක් වෙයි වගේ push, pull, සහfetch .

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

සෑම විටම ඔබගේ මුරපදය ඇතුළත් කිරීමෙන් වැළකී සිටීමට ඔබට අවශ්‍ය නම්, ඔබට ssh-agentඔබේ පුද්ගලික යතුරු මුරපද අක්තපත්‍ර පර්යන්ත සැසියකට වරක් ගබඩා කර තැබීමට භාවිතා කළ හැකිය, මගේ පිළිතුරෙන් මම පැහැදිලි කරන පරිදි ඔබේ සත්‍යාපන නියෝජිතයාට සම්බන්ධතාවයක් විවෘත කළ නොහැක :

$ eval `ssh-agent -s`
$ ssh-add

වින්ඩෝස් msysgit Bash හි, ඔබ එහි ප්‍රතිදානය ඇගයීමට ලක් කළ යුතුය ssh-agent , නමුත් වෙනත් සංවර්ධන පරිසරයන් සහ මෙහෙයුම් පද්ධති මට විශ්වාස නැත.

ssh-addඔබගේ නිවසේ .sshෆෝල්ඩරයේ පුද්ගලික යතුරක් සොයයිid_rsaසුපුරුදු නම වන , නමුත් ඔබට වෙනත් නමක් ඇති යතුරකට ගොනු මාර්ගයක් යැවිය හැකිය.

නියෝජිතයා illing ාතනය කිරීම

ඔබගේ පර්යන්ත සැසිය අවසන් වූ විට, ඔබට ssh-agentkill ාතන ධජය සමඟ වසා දැමිය හැකිය -k:

$ ssh-agent -k

ssh-agentඅත්පොතේ විස්තර කර ඇති පරිදි :

-k

වත්මන් නියෝජිතයා මරා දමන්න (SSH_AGENT_PID පරිසර විචල්‍යය මඟින් ලබා දී ඇත).

විකල්ප කල් ඉකුත් වීම

එසේම, එයට විකල්ප කල් ඉකුත් වීමේ පරාමිතියක් ගත හැකිය:

$ ssh-add -t <timeout>

එහිදී <timeout>ආකෘතිය වේ <n>hසඳහා <n>, පැය <n>mසඳහා<n> විනාඩි, හා ඒ නිසා.

ssh-agentඅත්පොතට අනුව :

-t life

නියෝජිතයාට එකතු කරන ලද අනන්‍යතාවයේ උපරිම ආයු කාලය සඳහා පෙරනිමි අගයක් සකසන්න. ආයු කාලය තත්පර වලින් හෝ sshd_config (5) හි නිශ්චිතව දක්වා ඇති කාල ආකෘතියකින් නියම කළ හැකිය . Ssh-add (1) සහිත අනන්‍යතාවයක් සඳහා නියම කර ඇති ජීවිත කාලය මෙම අගය ඉක්මවා යයි. මෙම විකල්පය නොමැතිව සුපුරුදු උපරිම ආයු කාලය සදහටම පවතී.

වැඩි කාල ආකෘති සඳහා මෙම පිටුව බලන්න .

සිග්වින් භාවිතා කරන්නන් සඳහා ආරක්ෂක අනතුරු ඇඟවීම

සිග්වින් හි ssh-agent භාවිතා කිරීමෙන් සිදුවිය හැකි ආරක්ෂක අවදානමක් පිළිබඳව සිග්වින් භාවිතා කරන්නන් දැනුවත් විය යුතුය :

සිග්වින් 1 යටතේ ssh-agent හි ඇති විය හැකි අන්තරායන් පිළිබඳව ජනතාව දැන සිටිය යුතුය , නමුත් දේශීය නෙට්ස්ටැට් සහ දුරස්ථ වරාය යටතේ / tmp / ssh-foo හි දක්වා ඇති වරාය ඕනෑම කෙනෙකුට ප්‍රවේශ විය හැකි බවක් නොපෙනේ ...?

[1]: http://www.cygwin.com/ml/cygwin/2001-01/msg00063.html

සහ උපුටා ගත් සබැඳියේ :

කෙසේ වෙතත්, සිග්වින්ගේ යුනික්ස් ඩොමේන් සොකට් මූල්‍යමය වශයෙන් අනාරක්‍ෂිත බව සලකන්න. එබැවින් සිග්වින් යටතේ එස්එස් -ඒජන්ත භාවිතය දැඩි ලෙස ප්‍රතික්ෂේප කරමි .

ඔබ සිග්වින් යටතේ ssh-agent ධාවනය කරන විට එය /tmp/ssh-$USERNAME/නාමාවලියෙහි AF_UNIX සොකට් නිර්මාණය කරයි . සිග්වින් යටතේ AF_UNIX සොකට් AF_INET සොකට් හරහා අනුකරණය කරනු ලැබේ. ඔබ /tmp/ssh-$USERNAME/agent-socket-*නොට්පෑඩ් හරහා ගොනුව සොයා බැලුවහොත් ඔබට පහසුවෙන් දැක ගත හැකිය . ඔබ වැනි දෙයක් දකිනු ඇත

!<socket >2080

දුවලා netstat -aපුදුම වෙන්න! වරාය 2080 ට සවන් දීමට ඔබට යම් වැඩසටහනක් ඇත. එය ssh-agent ය. Ssh හට සේවාදායකයෙන් RSA අභියෝගයක් ලැබුණු විට, එය අනුරූපී වේ /tmp/ssh-$USERNAME/agent-socket-*(සිග්වින් යටතේ, අපගේ නඩුවේ, එයින් අදහස් වන්නේ එය සම්බන්ධතාවය විවෘත කරනු ඇති බවයිlocalhost:2080 ) සහ RSA අභියෝගය එහි ඇති පුද්ගලික යතුර සමඟ ක්‍රියාවට නැංවීමට ssh-agentගෙන් ඉල්ලා සිටින අතර පසුව එය හුදෙක් ssh-agent වෙතින් ලැබෙන ප්‍රතිචාරය සේවාදායකයට යවයි.

යුනික්ස් යටතේ, එවැනි තත්වයක් ගැටළු රහිතව ක්‍රියා කරයි, මන්ද යුනික්ස් කර්නලය මඟින් AF_UNIX සොකට්ටුවකට ප්‍රවේශ වීමට උත්සාහ කරන විට අවසර පරීක්ෂා කරයි. කෙසේ වෙතත්, AF_INET සොකට් සඳහා, සම්බන්ධතා නිර්නාමික ය ("අනාරක්ෂිත" කියවන්න). සිතන්න, ඔබ සතුව සිග්වින් එස්එස්-ඒජන්තයා සිටී. අනිෂ්ට හැකර්වරයකු විසින් ඔබේ කොටුව පෝට්ස්කාන් කළ හැකිය, එස්එස්-ඒජන්ත විසින් භාවිතා කරන විවෘත වරාය සොයාගත හැකිය, ඔබේ එස්එස්එච් සේවාදායකයට සම්බන්ධතාවයක් විවෘත කළ හැකිය, එයින් ආර්එස්ඒ අභියෝගය ලැබෙනු ඇත, ඔහු / ඇය සොයාගත් විවෘත වරායක් හරහා ඔබේ එස්එස්-ඒජන්තවරයා වෙත යැවිය හැකිය. RSA ප්‍රතිචාරය, එය SSH සේවාදායකයට යවන්න සහ voila, ඔහු / ඇය ඔබ මෙන් ඔබේ සේවාදායකයට සාර්ථකව පිවිසී ඇත.


ලස්සන හා සවිස්තරාත්මක ශබ්ද. මම https අක්තපත්‍ර සහායකයා ගැන සැලකිලිමත් වූ අතර ඔබ ssh සම්බන්ධතා ගැන සැලකිලිමත් විය! +1
VonC

49

මුලාශ්‍රය: Git සකසන්න

පහත දැක්වෙන විධානය මඟින් ඔබගේ මුරපදය යම් කාලයක් මතකයේ සුරකිනු ඇත ( Git 1.7.10 හෝ නව සඳහා).

$ git config --global credential.helper cache
# Set git to use the credential memory cache

$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after one hour (setting is in seconds)

2
බහු අක්තපත්‍ර හැඹිලි කිරීම සඳහා (සෑම මුරපදයක්ම මතක තබා නොගෙන ) 'netrc' අක්තපත්‍ර උපකාරයට ( stackoverflow.com/a/18362082/6309 ) මම කැමැත්තෙමි . නමුත් ඔබ වින්ඩෝස් හි සිටින අතර මතක හැඹිලිය භාවිතා කිරීමට අවශ්‍ය නම් ඔබට වින්ස්ටෝර් ( stackoverflow.com/a/15310274/6309 ) අවශ්‍ය වේ
VonC

9
IMHO හි මෙතෙක් ලැබී ඇති හොඳම පිළිතුර මෙයයි.
චියෙල් ටෙන් බ්‍රින්කේ

35

ඔබ Git pull & push සඳහා https භාවිතා කරන විට, ඔබ තල්ලු කරන remote.origin.urlසෑම අවස්ථාවකම ආදාන පරිශීලක නාමය (හෝ / සහ මුරපදය) වළක්වා ගැනීමට ඔබේ ව්‍යාපෘතිය සඳහා වින්‍යාස කරන්න.

වින්‍යාස කරන්නේ කෙසේද remote.origin.url:

URL ආකෘතිය:
    https: // {පරිශීලක නාමය: මුරපදය @} github.com/ {හිමිකරු} / {repo}

URL හි පරාමිතීන්:

* පරිශීලක නාමය 
විකල්ප, අවශ්‍ය විට භාවිතා කළ යුතු පරිශීලක නාමය.
සත්‍යාපනය, නිශ්චිතව දක්වා ඇත්නම්, සත්‍යාපනය අවශ්‍ය වූ විට නැවත පරිශීලක නාමය ඇතුළත් කිරීමට අවශ්‍ය නොවේ. ඊමේල් භාවිතා නොකරන්න; "@" නොමැති ඔබගේ පරිශීලක නාමය භාවිතා කරන්න, එසේ නොමැතිනම් URL එක නිවැරදිව විග්‍රහ කළ නොහැක, * මුරපදය අත්‍යවශ්‍ය නොවේ, සත්‍යාපනය අවශ්‍ය විට භාවිතා කළ යුතු මුරපදය. නිශ්චිතව දක්වා ඇත්නම්, සත්‍යාපනය අවශ්‍ය විට මුරපදය නැවත ඇතුළත් කිරීමේ අවශ්‍යතාවයක් නොමැත. ඉඟිය: මෙම අගය සරල පෙළක් ලෙස ගබඩා කර ඇත, එබැවින් ආරක්ෂක අවශ්‍යතා සඳහා, මෙම පරාමිතිය සඳහන් නොකරන්න, * උදා git config remote.origin.url https: //eric@github.com/eric/myproject

Update යාවත්කාලීන කිරීම - භාවිතා කිරීම ssh

මම හිතන්නේ පාවිච්චි කරනවා sshhttpsසැකසීමේ පියවර ටිකක් සංකීර්ණ වුවත් ප්‍රොටෝකෝලය කිරීම වඩා හොඳ විසඳුමක් .

දළ පියවර:

  • විධානය භාවිතා කරමින් ssh යතුරු සාදන්න, උදා ssh-keygen ලිනක්ස් මත, කවුළු මත msysgitසමාන විධාන සපයයි.
  • පුද්ගලික යතුර දේශීය යන්ත්‍රයේ නිසි ස්ථානයේ තබා ගන්න, උදා. ~/.ssh . එය ssh-addවිධානය හරහා ssh නියෝජිතයාට එක් කරන්න .
  • පොදු යතුර Git සේවාදායකයට උඩුගත කරන්න.
  • remote.origin.urlGit නිධිය වෙනස් කිරීමssh ශෛලියට , උදා.git@gitlab.com:myaccount/myrepo.git
  • අදින්න හෝ තල්ලු කරන විට, කිසි විටෙකත් පරිශීලක නාමය හෝ මුරපදය ඇතුළත් කිරීමට අවශ්‍ය නොවේ.

ඉඟි:

  • ඔබේ ssh යතුරට මුරපදයක් තිබේ නම්, පෙරනිමියෙන් ඔබේ යන්ත්‍රයේ නැවත ආරම්භ කිරීමෙන් පසුව එය පළමු වරට යතුර භාවිතා කළ යුතුය.

Update යාවත්කාලීන කිරීම - httpsසහ අතර මාරු වන්නssh ප්‍රොටෝකෝලය.

සරලව වෙනස් කිරීම remote.origin.urlප්‍රමාණවත් වනු ඇත, නැතහොත් repo_home/.git/configඅගය වෙනස් කිරීම සඳහා ඔබට කෙලින්ම සංස්කරණය කළ හැකිය (උදා: භාවිතා කිරීමvi ලිනක්ස් කිරීම).

සාමාන්‍යයෙන් මම එක් එක් ප්‍රොටෝකෝලය සඳහා රේඛාවක් එක් කරන අතර, ඉන් එකක් භාවිතා කරමින් අදහස් දක්වන්න #.

උදා

[දුරස්ථ "සම්භවය"]
        url = git@gitlab.com: myaccount / myrepo.git
        # url = https: //myaccount@gitlab.com/myaccount/myrepo.git
        fetch = + refs / head / *: refs / දුරස්ථ / සම්භවය / *

Http [s] පදනම් කරගත් URL පරිශීලක නාම ප්‍රසාරණයට සහාය වන බව ඔබට විශ්වාසද ? අත්පොතෙහි git-fetch(1)සඳහන් වන්නේ git/ sshපදනම් වූ URL සඳහා පමණි .
දින

lplmday ඔව්, මම එය භාවිතා කරමි, මගේ git අනුවාදය 1.8.2.3 සහ 1.8.4 වේ, ඉහළ වෙරියන් මේ පිළිබඳව වෙනස් වේ දැයි මට විශ්වාස නැත.
එරික් වැන්ග්

1
NB ඔබගේ මුරපදය URL එකෙන් ලබා දීම (HTTPS භාවිතා කරන විට පවා) එයින් අදහස් වන්නේ එය ඔබ සහ ඔබේ ගබඩාව අතර ඇති සියල්ලටම පෙනෙන බවයි.
විලියම්

3
නැත, මුරපදය ලබා https://username:password@github.com/දීම ආරක්ෂිතයි. Stackoverflow.com/questions/4980912/…
මන්දගාමී

1
මම සොයමින් සිටියේ මෙයයි (සම්පූර්ණ ස්වයංක්‍රීයකරණය සඳහා)
යෝෂුවා

16

ඔබට ඔබගේ GitHub මුරපදය Git හි හැඹිලි කළ හැකිය:

GitHub හි නිල ලේඛනයේ උපදෙස් අනුගමනය කරන්න .

ඉහත සබැඳියේ උපදෙස් අනුගමනය කිරීමෙන් පසු, සෑම විටම ඔබේ පරිශීලක නාමය / මුරපදය ටයිප් නොකර ඔබේ ගබඩාවට තල්ලු කිරීමට / ඇද ගැනීමට ඔබට හැකි විය යුතුය.


5
මෙය මෙහි ඇති හොඳම පිළිතුර වන අතර පිළිගත් IMO විය යුතුය
TheZuck

1
එකඟ විය, නිල ලියකියවිලි උපුටා දක්වමින් පිළිතුරක් ප්‍රමුඛ විය යුතුය. මම ඔවුන්ගේ උපදෙස් සතුටින් අනුගමනය කළ අතර සම්මත සම්මුතීන් භාවිතා කිරීමට කැමැත්තෙමි.
ජොනීබ්

11

මෙන්න තවත් විකල්පයක්:

ලිවීම වෙනුවට

git push origin HEAD

ඔබට ලිවිය හැකිය:

git push https://user:pass@yourrepo.com/path HEAD

නිසැකවම, බොහෝ ෂෙල් වෙඩි සමඟ මෙය මුරපදය ඉතිහාසයේ හැඹිලිගත වීමට හේතු වනු ඇත, එබැවින් එය මතකයේ තබා ගන්න.


1
Bash හි, ප්‍රමුඛ අවකාශයන් එකක් හෝ කිහිපයක් එකතු කිරීම සාමාන්‍යයෙන් එය ඉතිහාසයෙන් බැහැර කරයි. නමුත් Git Bash හි නොවේ .
පීටර් මෝර්ටෙන්සන්

10

මට වැඩ කළේ සංස්කරණය කිරීම .git/configසහ භාවිතා කිරීමයි

[remote "origin"]
        url = https://<login>:<password>@gitlab.com(...).git

මෙය ඔබගේ මුරපදය ගබඩා කිරීමේ අනාරක්ෂිත ක්‍රමයක් බව නොකියයි, නමුත් මෙය ගැටළුවක් නොවිය හැකි පරිසරයන් / අවස්ථා තිබේ.


6

SSH යතුර හෝ .netrcගොනුව ඔබ වෙනුවෙන් ක්‍රියා නොකළේ නම්, ඔබට වැඩ කළ හැකි තවත් සරල, නමුත් අඩු ආරක්ෂිත විසඳුමක් වන්නේ git-credential-store - තැටියේ අක්තපත්‍ර ගබඩා කිරීමට උදව් කරන්න:

git config --global credential.helper store

පෙරනිමියෙන්, අක්තපත්‍ර ගොනුවේ සුරකිනු ඇත ~/.git-credentials . එය නිර්මාණය කර ලියනු ලැබේ.

මෙම සහායකයා භාවිතා කිරීමෙන් ඔබගේ මුරපද සංකේතාංකනය නොකළ තැටියේ ගබඩා වන අතර එය ගොනු පද්ධති අවසරයෙන් පමණක් ආරක්ෂා වේ. මෙය පිළිගත හැකි ආරක්ෂක වෙළඳාමක් නොවේ නම්.


5

මටත් ඒ ප්‍රශ්නයම තිබුණා.

ඒ නිසා මම .git/configමගේ ව්‍යාපෘතියෙන් ගොනුව වෙනස් කළා ,

url = https://github.com/<your-user-here>/<your-repo-here>

වෙත

url = git@github.com:<your-user-here>/<your-repo-here>

සහ සැකසෙමින් පවතින Git පැතිකඩට SSH පොදු යතුර එක් කළේය.

SSH පොදු යතුර සඳහා:

cat ~/.ssh/id_rsa.pub

1
සමග cat ~/.ssh/id_rsa.pubවන RSA ප්රධාන ලබා ගැනීමට හා GIT වෙබ් අඩවියෙන් පරිසරයක දී paste කරන්න.
අනුපම් මෞර්ය

4

මෙය මට වැඩ කළේ:

git remote set-url origin https://username@github.com/username/reponame.git

උදාහරණයක්:

git remote set-url origin https://jsmith@github.com/jsmith/master.git

4

HTTPS සඳහා යාවත්කාලීන කිරීම:

ඔබ HTTPS භාවිතා කරන විට ඔබගේ අක්තපත්‍ර ගබඩා කරන වින්ඩෝස් සඳහා GitHub නව වැඩසටහනක් දියත් කර ඇත:

භාවිතා කිරීමට:

  • මේ වැඩසටහනට බාගත මෙතන

  • ඔබ වැඩසටහන ක්‍රියාත්මක කළ පසු, එය ඔබගේ .gitconfigගොනුව සංස්කරණය කරනු ඇත . .gitconfigඔබට ඒවා කිහිපයක් තිබේ නම් එය නිවැරදි ලෙස සංස්කරණය කර ඇත්දැයි පරීක්ෂා කරන්න. එය නිවැරදි එකක් සංස්කරණය නොකළේ නම්, පහත සඳහන් දෑ ඔබට එකතු කරන්න.gitconfig

    [credential]
        helper = !'C:\\Path\\To\\Your\\Downloaded\\File\\git-credential-winstore.exe'
    

    පේළිය බිඳීමෙන් පසුව සටහන් කරන්න [credential]. එය අවශ්ය වේ.

  • ඔබේ විධාන රේඛා සේවාදායකයා විවෘත කර git push origin masterඑක් වරක් උත්සාහ කරන්න . එය ඔබෙන් මුරපදයක් ඉල්ලන්නේ නම්, එය ඇතුලත් කරන්න. මුරපදය සුරකින ලදි!


4

වින්ඩෝස් Git භාවිතා කරන්නන් සඳහා, ධාවනය කිරීමෙන් පසුව git config --global credential.helper store, එය තවමත් මුරපදයක් ඉල්ලා සිටී නම්, මෙම විධානය භාවිතා කර වින්‍යාස ගොනුව ලියා ඇත්තේ කොතැනට දැයි පරීක්ෂා කිරීම වඩා හොඳය.

git config --list --show-origin

මගේ නඩුවේදී, 'C: \ Program Files \ Git \ mingw64 \ etc \ gitconfig' වින්‍යාස ගොනුව අතින් සංස්කරණය කිරීමෙන් පසුව සහ පහත දැක්වෙන පෙළ එක් කිරීමෙන් පසුව එය ක්‍රියාත්මක විය.

[credential]
    helper = store

4

ඔබගේ Git වින්‍යාස ගොනුව කෙලින්ම යාවත්කාලීන කිරීම ( ඔබට විසිතුරු විධානයන් කටපාඩම් කිරීමට අවශ්‍ය නැතිනම් ):

.git/configඔබගේ ප්‍රියතම පෙළ සංස්කාරකයේ ඔබේ ගොනුව විවෘත කරන්න . එය ඔබ ක්ලෝන කළ ෆෝල්ඩරයේ හෝ ඔබ සිදු කළ ගබඩාවේ වනු git initඇත. එම ගබඩාවට යන්න. .gitසැඟවුණු ෆෝල්ඩරයක් වන අතර Ctrl+ එබීමෙන් Hසැඟවුණු ෆෝල්ඩරය පෙන්විය යුතුය ( ls -aපර්යන්තයේ).

පහත දැක්වෙන්නේ .git/configගොනුවේ නියැදියකි . මෙම රේඛා පිටපත් කර අලවන්න සහ ඔබේ රේඛා තොරතුරු සමඟ එම රේඛා යාවත්කාලීන කිරීමට වග බලා ගන්න.

[user]
        name = Tux
        email = tux@gmail.com
        username = happy_feet

[remote "origin"]
        url = https://github.com/happy_feet/my_code.git
        fetch = +refs/heads/*:refs/remotes/origin/*

SSH සඳහා පහත ආකෘතිය සමඟ URL කොටස වෙනස් කරන්න:

url = git@github.com:happy_feet/my_code.git

( ඉහත ආකෘති GitHub හෝ Bitbucket වැනි විවිධ Git දුරස්ථ සේවාදායකයන් සමඟ වෙනස් නොවේ. ඔබ අනුවාදය පාලනය සඳහා Git භාවිතා කරන්නේ නම් එය එසේම වේ ):

සටහන: දුරස්ථ Git ගබඩාවකට සම්බන්ධ වීමේ SSH ක්‍රමයට ඔබේ පොදු SSH යතුර ඔබගේ Git දුරස්ථ සේවාදායකයට ( GitHub හෝ Bitbucket වැනි) එක් කිරීමට අවශ්‍ය වනු ඇත . SSH යතුරු සඳහා සැකසුම් පිටුව සොයන්න ).

ඔබේ SSH යතුරු ජනනය කරන්නේ කෙසේදැයි දැන ගැනීමට, යොමු වන්න: SSH යතුරු සෑදීම


[පරිශීලකයා] සැකසීමේ හොඳ දෙය නම්, ඔබට මාස්ටර් ගිට් අක්තපත්‍රයක් තිබේ නම්, කොමිස් වින්‍යාසය තුළ [පරිශීලකයා] විසින් ලියාපදිංචි කරනු ලැබේ.
ආයුෂ් මැන්ඩෝවරා

3

ඔබට මූලික වශයෙන් විකල්ප දෙකක් තිබේ.

ඔබ යන්ත්‍ර දෙකෙහිම එකම පරිශීලකයෙකු භාවිතා කරන්නේ නම් .pub යතුර ඔබේ පරිගණකයට පිටපත් කළ යුතුය, එබැවින් ඔබ එකම පරිශීලකයා බව GitHub දනී.

ඔබ ඔබේ පරිගණකය සඳහා නව .pub ගොනුවක් නිර්මාණය කර ඇති අතර යන්ත්‍ර විවිධ පරිශීලකයින් ලෙස සැලකීමට අවශ්‍ය නම්, ඔබ නව .pub ගොනුව GitHub වෙබ් අඩවියේ ලියාපදිංචි කළ යුතුය.

මෙය තවමත් ක්‍රියාත්මක නොවන්නේ නම්, ssh නිවැරදිව වින්‍යාස කර නොමැති නිසාත්, ඔබේ යතුරු ඇති ස්ථානය සොයා ගැනීමට ssh අසමත් වීම නිසාත් විය හැකිය. උත්සාහ කරන්න

ssh -vv username@github.com

SSH අසමත් වීමට හේතුව පිළිබඳ වැඩිදුර තොරතුරු ලබා ගැනීම සඳහා.


3

ඔබ කළා නම් 2FA සක්රීය වී ඔබේ Github ගිණුම මත, ඔබගේ සාමාන්ය මුරපදය මෙම අරමුණු ඉටු කර ගැනීම සඳහා ක්රියා නොකරනු ඇත, නමුත් ඔබ පුද්ගලික ටෝකනය ජනනය අතර, ඒ වෙනුවට එහි ස්ථානයේ බව භාවිතා කළ හැකිය.

GitHub හි ( > Settings-> Developer Settings-> Personal Access Tokensපිටුවට පිවිසෙන්න ( https://github.com/settings/tokens/new ), සහ සියලු රෙපෝ අවසරයන් සහිත නව ටෝකනයක් ජනනය කරන්න :

GitHub පුද්ගලික ප්‍රවේශ ටෝකනය ජනනය කරන්න

පිටුව පසුව නව ටෝකන අගය පෙන්වනු ඇත. GitHub හි ඔබේ ගබඩාවට තල්ලු කිරීමේදී මෙම අගය සුරකින්න සහ මුරපදය වෙනුවට එය භාවිතා කරන්න:

> git push origin develop
Username for 'https://github.com': <your username>
Password for 'https://<your username>@github.com': <your personal access token>

2

ඔබ පියවර දෙකක් කළ යුතුයි -

  1. git remote remove origin
  2. git remote add origin git@github.com:NuggetAI/nugget.git

Git URL එක SSH URL එකක් මිස HTTPS URL එකක් නොවන බව සැලකිල්ලට ගන්න ... ඔබට මෙතැනින් තෝරා ගත හැකි:

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


2

ඔබ SSH වෙනුවට HTTPS ක්ලෝන කර ඇත්නම් සහ අදින්න, තල්ලු කිරීම සහ ලබා ගැනීම පිළිබඳ පරිශීලක නාමය සහ මුරපද විමසුමට මුහුණ දී තිබේ නම්. ඔබට UBUNTU සඳහා මෙම ගැටළුව විසඳා ගත හැකිය

පියවර 1: මූල ඩිරෙක්ටරියට යන්න

cd ~/

ගොනුවක් සාදන්න .git-credentials

ඔබ usename passwordසහ එම ගොනුවට මෙම අන්තර්ගතය එක් කරන්නgithosting URL

https://user:pass@example.com

ඉන්පසු විධානය ක්‍රියාත්මක කරන්න

git config --global credential.helper store

දැන් ඔබට කිසිදු කරදරයකින් තොරව තල්ලු කර සියලු විස්තර ඔබේ ගබඩාවෙන් ලබා ගත හැකිය.


0

ඔබ වින්ඩෝස් යටතේ Git (උදාහරණයක් ලෙස Git Bash) භාවිතා කරන්නේ නම් (ඔබට HTTPS සිට SSH වෙත මාරුවීමට අවශ්‍ය නැතිනම්), ඔබට වින්ඩෝස් සඳහා Git අක්තපත්‍ර කළමනාකරු ද භාවිතා කළ හැකිය.

මෙම යෙදුම ඔබ වෙනුවෙන් පරිශීලක නාමය සහ මුරපදය තබා ගනී ...


0

බොහෝ පරිශීලකයින් පවසා ඇති පරිදි, ඔබට ඔබගේ Git නිධිය URL එක HTTPS සිට SSH දක්වා වෙනස් කළ යුතුය.

ඔබ ඔබේ යන්ත්‍රය තුළ SSH යතුරක් ජනනය කර නොමැති නම්, ඔබට එය කිරීමට සිදුවේ.

අතිරේක තොරතුරු ලෙස, මෙම වෙනස සිදු කිරීමෙන් පසුව මට තවමත් එම දෝෂයම ලැබුණි:

අවසරය ප්රතික්ෂේප කෙරිණි.

මගේ නඩුවේදී, ගැටළුව වූයේ මම ngh විධානය ක්‍රියාත්මක කිරීම සඳහා වින්ඩෝස් ෂෙල් භාවිතා කිරීමයි; මෙම විධානය මඟින් SSH වාක්‍ය ඛණ්ඩය ඉල්ලීමට විමසුමක් විවෘත කළ යුතු අතර වින්ඩෝස් ෂෙල් විසින් මේ ආකාරයේ විමසීම් විවෘත නොකරන බැවින් සත්‍යාපනය අසාර්ථක විය.

ඉතින්, මට සිදු වූයේ Git shell එක විවෘත කර එහි ngh විධානය ක්‍රියාත්මක කර, SSH වාක්‍ය ඛණ්ඩය ඉල්ලන සෑම අවස්ථාවකම එය විමසා “voilà” කරන්න ... එය හොඳින් ක්‍රියාත්මක විය!


0
    # create the company identity file
    ssh-keygen -t rsa -b 4096 -C "first.last@corp.com"
    # save private key to ~/.ssh/id_rsa.corp, 
    cat ~/.ssh/id_rsa.corp.pub # copy paste this string into your corp web ui security ssh keys

    # create your private identify file
    ssh-keygen -t rsa -b 4096 -C "me@gmail.com"
    # save private key to ~/.ssh/id_rsa.me, note the public key ~/.ssh/id_rsa.me.pub
    cat ~/.ssh/id_rsa.me.pub # copy paste this one into your githubs, private keys

    # clone company internal repo as follows
    GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.corp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
    git clone git@git.in.corp.com:corp/project.git

    export git_msg="my commit msg with my corporate identity"
    git add --all ; git commit -m "$git_msg" --author "MeFirst MeLast <first.last@corp.com>"
    GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.corp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
    git push 

    # clone public repo as follows
    GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.corp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
    git clone git@github.com:acoolprojectowner/coolproject.git

    export git_msg="my commit msg with my personal identity"
    git add --all ; git commit -m "$git_msg" --author "MeFirst MeLast <first.last@gmail.com>"
    GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.me -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
    git push 

    # stop :: how-to use different ssh identity files
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.