दिलचस्प पोस्ट
Jquery / Ajax फॉर्म सबमिशन (एन्क्टीपे = "मल्टीपार्ट / फॉर्म-डेटा") क्यों 'contentType: गलत' PHP में अनिर्धारित सूचकांक क्यों करता है? क्या तरीकों के भीतर तरीकों को संभव है? जावा फ़ाइल इनपुटस्ट्रीम ऑब्जेक्ट इनटस्टस्ट्रिम फाइल एओएफ के अंत तक पहुंचता है एक बोली स्क्रिप्ट के भीतर xargs के साथ कार्य कॉलिंग घातक त्रुटि: CALL_AND_RETRY_LAST आवंटन विफल – स्मृति से बाहर प्रक्रिया NewtonSoft (या LINQ से JSON हो सकता है?) का उपयोग कर। Droppable की घटना के बाहर एक jQuery ड्रैग करने योग्य वस्तु वापस अपने मूल कंटेनर पर वापस लौटें निकाले गए डेटा को jmeter का उपयोग करके फ़ाइल में लिखें आम तौर पर डिस्क की तुलना में कितना तेजी है? Global.aspx के Application_Start में पूर्ण होस्ट नाम + पोर्ट नंबर कैसे प्राप्त करें? जावास्क्रिप्ट में = 8 क्यों करता है? क्या आप AngularUI बूटस्ट्रैप में विशिष्ट टेम्पलेट्स ओवरराइड कर सकते हैं? सर्वलेट आधारित अनुप्रयोग में कॉन्फ़िगरेशन संसाधन फ़ाइलों को कहां और कैसे पढ़ा जाए? एंड्रॉइड स्पिनर: चयनित आइटम परिवर्तन ईवेंट प्राप्त करें पायथन – वाकए पाठ में वाक्य के लिए RegEx (वाक्य-टोकनिंग)

एक ही कंप्यूटर पर एकाधिक गिटब खाते हैं?

अपने दोनों वास्तविक "काम" रिपो पर काम करने की कोशिश कर रहा हूं, और मेरे कंप्यूटर से जीआईटी हब पर मेरा निजी रेपो

काम का खाता पहले स्थापित किया गया था, और सब कुछ बिना किसी निरंतर काम करता है।

मेरा व्यक्तिगत खाता, हालांकि, मेरे व्यक्तिगत रेपो में धराशायी नहीं लग सकता है, जिसे एक अलग खाता / ईमेल के तहत स्थापित किया गया है

मैंने अपने काम की कुंजी मेरे निजी खाते तक कॉपी करने की कोशिश की है, लेकिन यह एक त्रुटि फेंकता है, क्योंकि एक कुंजी केवल एक खाते से जुड़ी हो सकती है

मैं उनके संबंधित गिथूब क्रेडेंशियल्स से दोनों खातों को कैसे और पुश कर सकता हूं?

Solutions Collecting From Web of "एक ही कंप्यूटर पर एकाधिक गिटब खाते हैं?"

आपको बस इतना करना होगा कि आपके एसएसएच सेटअप को एकाधिक एसएसएच कीपैयर के साथ कॉन्फ़िगर किया गया है।

इसके अलावा, यदि आप अलग अलग व्यक्तियों का उपयोग करते हुए कई रिपॉजिटरी के साथ काम कर रहे हैं, तो आपको यह सुनिश्चित करने की आवश्यकता है कि आपके व्यक्तिगत रिपॉजिटरी के अनुसार उपयोगकर्ता सेटिंग्स को ओवरराइड किया गया है:

उपयोगकर्ता नाम, ईमेल और GitHub टोकन सेट करना – अलग-अलग रीपो के लिए ओवरराइड करने की सेटिंग https://help.github.com/articles/setting-your-email-in-git/

उम्मीद है की यह मदद करेगा।

संपादित करें: अद्यतन लिंक

HTTPS का उपयोग करें:

https को दूरस्थ यूआरएल बदलें:

 git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git 

और आप जाने के लिए अच्छा है:

 git push 

यह सुनिश्चित करने के लिए कि प्रतिबद्धता USERNAME द्वारा निष्पादन के रूप में दिखाई देने के लिए, कोई भी इस प्रोजेक्ट के लिए user.name और user.email को भी सेटअप कर सकता है:

 git config user.name USERNAME git config user.email USERNAME@example.com 

अपने ~ / .ssh / config में github.com के लिए अलग मेजबान एलियास बनाकर, और प्रत्येक मेजबान के नाम से अपनी स्वयं की एसएसपी कुंजी देकर, आप बिना गलतियों के कई गिटब खातों का आसानी से उपयोग कर सकते हैं। ऐसा इसलिए क्योंकि github.com उपयोगकर्ता द्वारा नहीं अलग करता है, जो हमेशा केवल git होता है, लेकिन आप जिस एसएसबी कुंजी से कनेक्ट होते थे बस अपने खुद के होस्ट उपनामों का उपयोग करके अपने दूरस्थ मूल को कॉन्फ़िगर करें। "

उपर्युक्त सारांश नीचे ब्लॉग पोस्ट पर टिप्पणियों के सौजन्य से है।

मुझे यह स्पष्टीकरण स्पष्ट पाया गया है और यह मेरे लिए काम करता है, कम से कम अप्रैल 2012 तक

http://net.tutsplus.com/tutorials/tools-and-tips/how-to-work-with-github-and-multiple-accounts/

http://net.tutsplus.com/tutorials/tools-and-tips/how-to-work-with-github-and-multiple-accounts/ पर मिशाने के विवरण मिशाबा द्वारा मेरे लिए बहुत अच्छी तरह से काम करते हैं।

उस पृष्ठ से:

 $ touch ~/.ssh/config 

फिर उस फ़ाइल को इस तरह से संपादित करें (प्रति खाता एक प्रविष्टि):

 #Default GitHub Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa Host github-COMPANY HostName github.com User git IdentityFile ~/.ssh/id_rsa_COMPANY 

आकार में हो रही है

एक अलग github / bitbucket / जो भी खाते के तहत एक git रेपो का प्रबंधन करने के लिए, आपको बस एक नया एसएसएच कुंजी बनाने की आवश्यकता है

लेकिन इससे पहले कि हम अपनी दूसरी पहचान के साथ रेपो को खींचने / खींचने शुरू कर सकें, हमें आपको आकार में लेना होगा – चलो मान लें कि आपके सिस्टम को विशिष्ट id_rsa और id_rsa.pub कुंजी जोड़ी के साथ सेटअप किया गया है। अभी आपके tree ~/.ssh इस तरह दिखता है

 $ tree ~/.ssh /Users/you/.ssh ├── known_hosts ├── id_rsa └── id_rsa.pub 

सबसे पहले, नाम कुंजी कि जोड़ी – एक वर्णनात्मक नाम जोड़ने से आपको यह याद करने में मदद मिलेगी कि किस कुंजी के लिए उपयोग किया जाता है जिसके लिए उपयोगकर्ता / रिमोट

 # change to your ~/.ssh directory $ cd ~/.ssh # rename the private key $ mv id_rsa github-mainuser # rename the public key $ mv id_rsa.pub github-mainuser.pub 

इसके बाद, एक नई कुंजी युग्म उत्पन्न करें – यहां मैं नई कुंजी github-otheruser अन्य उपयोगकर्ता का नाम github-otheruser

 $ ssh-keygen -t rsa -b 4096 -f ~/.ssh/github-otheruser 

अब, जब हम tree ~/.ssh देखते हैं हम देखते हैं

 $ tree ~/.ssh /Users/you/.ssh ├── known_hosts ├── github-mainuser ├── github-mainuser.pub ├── github-otheruser └── github-otheruser.pub 

इसके बाद, हमें एक ~/.ssh/config फाइल सेटअप करने की आवश्यकता है जो कि हमारे मुख्य विन्यास को परिभाषित करेगी। हम इसे उचित मालिक-पढ़ने / लिखने-योग्य अनुमतियों के साथ बनाएंगे I

 $ (umask 077; touch ~/.ssh/config) 

अपने पसंदीदा संपादक के साथ खोलें और निम्नलिखित सामग्री जोड़ें

 Host github.com User git IdentityFile ~/.ssh/github-mainuser Host github.com-otheruser HostName github.com User git IdentityFile ~/.ssh/github-otheruser 

संभवतः, आपके पास अपनी प्राथमिक गिटब पहचान से जुड़े कुछ मौजूदा रिपो होंगे। इस कारण से, "डिफ़ॉल्ट" github.com Host को आपकी mainuser कुंजी कुंजी का उपयोग करने के लिए सेटअप किया गया है। यदि आप किसी दूसरे खाते से एक खाते का पक्ष नहीं करना चाहते हैं, तो मैं आपको दिखाएगा कि अद्यतित एसएसपी कॉन्फ़िगरेशन का उपयोग करने के लिए आपके सिस्टम पर मौजूदा रिपो को कैसे अद्यतन किया जाए।


अपनी नई SSH कुंजी को जिथूब में जोड़ें

अपनी नई सार्वजनिक कुंजी जोड़ने के लिए github.com/settings/keys पर जाएं

आप सार्वजनिक कुंजी सामग्री का इस्तेमाल कर सकते हैं: कॉपी / पेस्ट करें इसे जिथूब पर

 $ cat ~/.ssh/github-otheruser.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBVvWNQ2nO5... 

अब आपकी नई उपयोगकर्ता पहचान सभी सेटअप है – नीचे हम आपको दिखाएंगे कि इसका उपयोग कैसे करना है।


सामान प्राप्त करना: एक रेपो क्लोन करना

तो यह कैसे git और github के साथ काम करने के लिए एक साथ आ जाता है? ठीक है क्योंकि आपके पास अंडे के बिना चिकन नहीं हो सकता है, हम मौजूदा रिपो क्लोनिंग को देखेंगे। यह स्थिति आपके लिए लागू हो सकती है यदि आपके पास अपने कार्यस्थल के लिए नया गिटब खाता है और आपको किसी कंपनी के प्रोजेक्ट में जोड़ा गया है।

मान लें कि github.com/someorg/somerepo पहले से मौजूद है और आपको इसमें जोड़ा गया है – क्लोनिंग के रूप में आसान है

 $ git clone github.com-otheruser :someorg/somerepo.git 

उस बोल्ड वाले भाग को Host नाम से मेल करना चाहिए जो हम आपके ~/.ssh/config फ़ाइल में सेटअप करते हैं। यह सही ढंग से जीआईटी को इसी पहचानफ़ाइल को जोड़ता है और आपको गिटूब के साथ ठीक से प्रमाणित करता है


सामान प्राप्त करना: एक नया रेपो बनाना

ठीक है क्योंकि आपके बिना चिकन और अंडा नहीं हो सकता है, हम आपके द्वितीयक खाते पर एक नया रेपो प्रकाशित करने को देखेंगे। यह स्थिति उपयोगकर्ताओं के लिए लागू होती है जो नई माध्यमिक गिटब खाते का उपयोग करते हुए नई सामग्री बनाते हैं।

मान लीजिए कि आप स्थानीय रूप से पहले से ही थोड़ा काम कर चुके हैं और अब आप गिटबल को पुश करने के लिए तैयार हैं। यदि आप चाहें तो आप मेरे साथ अनुसरण कर सकते हैं

 $ cd ~ $ mkdir somerepo $ cd somerepo $ git init 

अब अपनी पहचान का उपयोग करने के लिए इस रेपो को विन्यस्त करें

 $ git config user.name "Mister Manager" $ git config user.email "someuser@some.org" 

अब अपनी पहली प्रतिबद्धता बनाएं

 $ echo "hello world" > readme $ git add . $ git commit -m "first commit" 

जीआईटी लॉग का इस्तेमाल करते हुए अपनी नई पहचान को देखने के लिए प्रतिबद्ध जांचें

 $ git log --pretty="%H %an <%ae>" f397a7cfbf55d44ffdf87aa24974f0a5001e1921 Mister Manager <someuser@some.org> 

ठीक है, समय के लिए गिटूब को धक्का! चूंकि गिथूब अभी तक हमारे नए रेपो के बारे में नहीं जानता है, पहले github.com/new पर जाएं और अपना नया रेपो तैयार करें – यह किसी भी तरह का नाम है

अब, अपने रिपो को सही पहचान / क्रेडेंशियल्स का उपयोग करके गिटूब को "टॉक" करने के लिए कॉन्फ़िगर करने के लिए, हमने एक रिमोट जोड़ लिया है अपने नए खाते के लिए अपने github उपयोगकर्ता नाम मानते हुए कुछ है …

 $ git remote add origin github.com-otheruser :someuser/somerepo.git 

यह बोल्ड किया गया भाग बिल्कुल महत्वपूर्ण है और इसे Host मेल खाना चाहिए जिसे हमने आपके ~/.ssh/config फ़ाइल में परिभाषित किया है

अंत में, रेपो को दबाएं

 $ git push origin master 

एक नया एसएसएच कॉन्फ़िगरेशन का उपयोग करने के लिए एक मौजूदा रेपो अपडेट करें

कहते हैं कि आपके पास पहले से कुछ रेपो क्लोन है, लेकिन अब आप एक नया एसएसएच कॉन्फ़िगरेशन का उपयोग करना चाहते हैं उपर्युक्त उदाहरण में, हमने आपके Host github.com कॉन्फिग फ़ाइल में अपने पहले id_rsa / id_rsa.pub कुंजी युग्म को Host github.com को असाइन करके अपने मौजूदा रेपो को कुशलता में रखा है। इसके साथ कुछ भी गलत नहीं है, लेकिन मेरे पास अब कम से कम 5 गिथुब कॉन्फ़िगरेशन हैं और मैं उनमें से एक को "डिफ़ॉल्ट" कॉन्फ़िगरेशन के रूप में सोचने को नहीं पसंद करता हूं – मैं किसी एक के बारे में स्पष्ट होना चाहता हूं।

इससे पहले कि हम यह था

 Host github.com User git IdentityFile ~/.ssh/github-mainuser Host github.com-otheruser HostName github.com User git IdentityFile ~/.ssh/github-otheruser 

इसलिए हम इसे अब अपडेट करेंगे ( बोल्ड में बदलाव)

 Host github.com-mainuser HostName github.com User git IdentityFile ~/.ssh/github-mainuser Host github.com-otheruser HostName github.com User git IdentityFile ~/.ssh/github-otheruser 

लेकिन इसका मतलब है कि अब किसी भी मौजूदा रेपो github.com रिमोट के साथ इस पहचान फ़ाइल के साथ काम नहीं करेगा। लेकिन चिंता मत करो, यह एक सरल तय है

अपने नए एसएसएच कॉन्फ़िगरेशन का उपयोग करने के लिए किसी भी मौजूदा रेपो को अपडेट करने के लिए, बस रेपो की जीआईटी कॉन्फ़िग फ़ाइल खोलें और यूआरएल अपडेट करें!

 $ cd existingrepo $ nano .git/config 

रिमोट मूल क्षेत्र अपडेट करें ( बोल्ड में परिवर्तन)

 [remote "origin"] url = github.com-mainuser:someuser/existingrepo.git fetch = +refs/heads/*:refs/remotes/origin/* 

बस। अब आप अपने दिल की सामग्री को push कर सकते हैं / pull सकते हैं


SSH कुंजी फ़ाइल अनुमतियां

यदि आप अपनी सार्वजनिक कुंजी के साथ परेशानी में चल रहे हैं, तो ठीक से काम नहीं कर रहा है, SSH आपके ~/.ssh निर्देशिका और संबंधित कुंजी फ़ाइलों पर अनुमत फ़ाइल अनुमतियों पर काफी सख्त है

अंगूठे के नियम के रूप में, कोई भी निर्देशिका 700 होनी चाहिए और कोई भी फाइल 600 होनी चाहिए – इसका मतलब है कि वे मालिक-पढ़े / लिखते हैं- कोई भी अन्य समूह / उपयोगकर्ता उन्हें पढ़ / लिख सकता है

 $ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/config $ chmod 600 ~/.ssh/github-mainuser $ chmod 600 ~/.ssh/github-mainuser.pub $ chmod 600 ~/.ssh/github-otheruser $ chmod 600 ~/.ssh/github-otheruser.pub 

मैं अपने एसएसएच कुंजी को कैसे प्रबंधित करता हूँ

मैं प्रत्येक होस्ट के लिए अलग एसएसएच कुंजी का प्रबंधन करता हूं, जैसे कि किसी एक कुंजी को कभी भी समझौता किया जाता है, मुझे उस हर जगह पर कुंजी को अद्यतन करने की ज़रूरत नहीं है जिसने मैंने उस कुंजी का उपयोग किया है ऐसा तब होता है जब आप एडोब से यह सूचना प्राप्त करते हैं कि 150 लाख उपयोगकर्ताओं की जानकारी चोरी हो गई थी – अब आपको उस क्रेडिट कार्ड को रद्द करना होगा और उस पर निर्भर हर सेवा को अपडेट करना होगा – क्या परेशानी है

यहाँ मेरा ~/.ssh निर्देशिका कैसा दिखता है: मेरे पास प्रत्येक उपयोगकर्ता के लिए एक .pem कुंजी है, प्रत्येक डोमेन के लिए मैं एक फ़ोल्डर में कनेक्ट हूं। मैं .pem कुंजी का उपयोग करता हूं इसलिए मुझे केवल एक फ़ाइल प्रति कुंजी की आवश्यकता है I

 $ tree ~/.ssh /Users/naomik/.ssh ├── config ├── github.com │  ├── naomik.pem │  ├── someusername.pem ├── known_hosts ├── naomi.makes.software │  ├── naomi.pem ├── somedomain.com │  ├── someuser.pem └── someotherdomain.org  └── someuser.pem 

और यहाँ मेरी संगत /.ssh/config फ़ाइल है – जाहिर है github stuff github के बारे में इस सवाल का उत्तर देने के लिए प्रासंगिक है, लेकिन इस उत्तर का उद्देश्य आपको किसी भी संख्या में सेवाओं / मशीनों पर अपनी एसएसआईटी पहचान के प्रबंधन के लिए ज्ञान से लैस करना है।

 Host github.com-naomik HostName github.com User git IdentityFile ~/.ssh/github.com/naomik.pem Host github.com-someuser HostName github.com User git IdentityFile ~/.ssh/github.com/someusername.pem Host naomi.makes.software User naomi IdentityFile ~/.ssh/naomi.makes.software/naomi.pem Host somedomain.com HostName 162.10.20.30 User someuser IdentityFile ~/.ssh/somedomain.com/someuser.pem Host someotherdomain.org User someuser IdentityFile ~/.ssh/someotherdomain.org/someuser.pem 

एक PEM कुंजी से अपनी SSH सार्वजनिक कुंजी प्राप्त करना

आपने ऊपर देखा कि मेरे पास प्रत्येक कुंजी के लिए केवल एक फाइल है जब मुझे एक सार्वजनिक कुंजी प्रदान करने की आवश्यकता होती है, तो मैं बस इसे आवश्यकतानुसार उत्पन्न करता हूं।

इसलिए जब गीथूब आपके एसएसआई सार्वजनिक कुंजी के लिए पूछता है, इस आदेश को सार्वजनिक कुंजी को आउटपुट करने के लिए stdout – copy / paste जहां आवश्यक है, चलाएं

 $ ssh-keygen -y -f someuser.pem ssh-rsa AAAAB3NzaC1yc2EAAAA... 

ध्यान दें, यह एक ऐसी प्रक्रिया है जो मैं किसी भी रिमोट मशीन पर अपनी कुंजी जोड़ने के लिए उपयोग करता हूं। ssh-rsa AAAA... मान रिमोट की ~/.ssh/authorized_keys फ़ाइल में कॉपी किया गया है


अपने id_rsa / id_rsa.pub कुंजी जोड़े को PEM प्रारूप में परिवर्तित करना

तो क्या आप कुछ फाइल सिस्टमों को वश में करना चाहते हैं और कुछ फ़ाइल सिस्टम क्र्रिफ्ट पर कटौती करना चाहते हैं? अपनी कुंजी जोड़ी को एक एकल पीईएम में परिवर्तित करना आसान है

 $ cd ~/.ssh $ openssl rsa -in id_rsa -outform pem > id_rsa.pem 

या, ऊपर दिए गए हमारे उदाहरणों के साथ, हमने id_rsa -> github-mainuser id_rsa.pub -> github-mainuser.pub id_rsa -> github-mainuser और id_rsa -> github-mainuser id_rsa.pub -> github-mainuser.pub नाम बदल दिया है

 $ cd ~/.ssh $ openssl rsa -in github-mainuser -outform pem > github-mainuser.pem 

अब सिर्फ यह सुनिश्चित करने के लिए कि हमने यह सही रूपांतरित किया है, आप यह सत्यापित करना चाहते हैं कि उत्पन्न सार्वजनिक कुंजी आपकी पुरानी सार्वजनिक कुंजी से मेल खाती है

 # display the public key $ cat github-mainuser.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA ... R++Nu+wDj7tCQ== # generate public key from your new PEM $ ssh-keygen -y -f someuser.pem ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA ... R++Nu+wDj7tCQ== 

अब जब आपके पास अपनी github-mainuser.pem फाइल है, तो आप अपने पुराने github-mainuser और github-mainuser.pub फ़ाइलों को सुरक्षित रूप से हटा सकते हैं – केवल पीईएम फाइल आवश्यक है; जब भी आपको इसकी ज़रूरत होती है, तब केवल सार्वजनिक कुंजी जनरेट करें ^ _ ^


खरोंच से पीईएम कुंजी बनाना

आपको निजी / सार्वजनिक कुंजी युग्म बनाने की आवश्यकता नहीं है और फिर एक एकल PEM कुंजी में कनवर्ट करें। आप सीधे पीईएम कुंजी बना सकते हैं

चलो एक newuser.pem

 $ openssl genrsa -out ~/.ssh/newuser.pem 4096 

SSH सार्वजनिक कुंजी प्राप्त करना समान है

 $ ssh-keygen -y -f ~/.ssh/newuser.pem ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACA ... FUNZvoKPRQ== 

मैं शैल लिपियों का उपयोग करने के लिए स्विच करने के लिए जो कुछ भी मैं "सक्रिय" होना चाहता हूँ मूल रूप से आप एक नई शुरुआत से शुरू करते हैं, एक खाते को ठीक तरह से कॉन्फ़िगर कर लेते हैं और काम करते हैं, फिर इन फ़ाइलों को उचित उपसर्ग के साथ एक नाम पर ले जाएं। तब से आप "github" या "gitxyz" कमांड का उपयोग कर सकते हैं:

 # my github script cd ~/.ssh if [ -f git_dhoerl -a -f git_dhoerl.pub -a -f config_dhoerl ] then ; else echo "Error: missing new files" exit 1 fi # Save a copy in /tmp, just in case cp id_rsa /tmp cp id_rsa.pub /tmp cp config /tmp echo "Saved old files in /tmp, just in case" rm id_rsa rm id_rsa.pub rm config echo "Removed current links/files" ln git_dhoerl id_rsa ln git_dhoerl.pub id_rsa.pub ln config_dhoerl config git config --global user.email "dhoerl@<company>.com" git config --global github.user "dhoerl" git config --global github.token "whatever_it_is" ssh-add -D 

इसके साथ मुझे बहुत शुभकामनाएं मिली हैं मैंने भी Xcode में एक रन स्क्रिप्ट बनाई है (आप मैक उपयोगकर्ताओं के लिए) इसलिए यह मेरी प्रोजेक्ट का निर्माण नहीं करेगी जब तक कि मुझे उचित सेटिंग (इसके उपयोग के बाद से जीआईटी) न हो।

निर्भरता के बाद चलाने वाली स्क्रिप्ट को चलाने (शेल के रूप में / bin / ksh का उपयोग करना):

 if [ "$(git config --global --get user.email)" != "dhoerl@<company>.com" ] then exit 1 fi 

संपादित करें: नई फाइलों के अस्तित्व के लिए जोड़ा गया परीक्षण और पुरानी फाइलों की प्रतिलिपि @nomik पर टिप्पणी करने के लिए / tmp में जोड़ा गया है

धन्यवाद user1107028:

HTTPS का उपयोग करें:

https को दूरस्थ यूआरएल बदलें:

git रिमोट सेट-यूआरएल मूल https: //USERNAME@github.com/USERNAME/PROJECTNAME.git और आप जाने के लिए अच्छा है:

git धक्का

मुझे यह सबसे अच्छा तरीका मिला जब कई गिटूब खातों का उपयोग किया गया था। मैं केवल एक ही खाते का उपयोग नहीं कर सकता, इसका संभवतः संभव नहीं है, और मैं एसएसएच को इसके बावजूद कोई भी काम नहीं कर सका। आईडी ने मतदान का जवाब दिया है लेकिन मेरे पास पर्याप्त अंक नहीं हैं – मैं उन साधारण लोगों के लिए इस सरल समाधान को स्वीकार करना चाहता हूं, जिनके लिए साफ आसान समाधान की जरूरत है यह पहली बार काम किया और मुझे अधिक संघर्ष कर रहे घंटे बचाया।

मैंने यह मणि बहुत उपयोगी पाया: sshwitch

https://github.com/agush22/sshwitch
http://rubygems.org/gems/sshwitch

यह एसएसएच कुंजी को बाहर करने में मदद करता है सब कुछ पहले वापस करने के लिए याद रखें!

साथ ही यह सुनिश्चित करने के लिए कि उनके साथ संबद्ध सही ईमेल पता है, मैंने सुनिश्चित किया है कि ~ / .gitconfig फ़ाइल में उचित ईमेल पता था

एकाधिक खातों के लिए कई एसएसएच कुंजी बनाने के अलावा आप एक ही खाते ईमेल का उपयोग करके प्रत्येक प्रोजेक्ट पर सहयोगकर्ता जोड़ सकते हैं और पासवर्ड को स्थायी रूप से संग्रहीत कर सकते हैं।

 #this store the password permanently $ git config --global credential.helper wincred 

मेरे पास अलग-अलग ईमेल के साथ एक से अधिक खातों का सेटअप किया गया है, तो प्रत्येक खाते पर उसी उपयोगकर्ता और ईमेल को सहयोगकर्ताओं में से एक के रूप में रखें इस तरह से मैं SSH कुंजी को जोड़ते ही, या किसी अन्य उपयोगकर्ता नाम पर स्विच करने और प्रमाणन के लिए ईमेल के बिना सभी खाते तक पहुंच सकता हूं।

यह जवाब शुरुआती (कोई भी नहीं- git गुरु) के लिए है। मैं हाल ही में इस समस्या थी और शायद यह सिर्फ मुझे, लेकिन अधिकांश जवाबों में गिट की बजाय समझने की आवश्यकता थी। इस धागे सहित कई स्टैक ओवरफ्लो उत्तर पढ़ने के बाद, यहां गिटहब खातों के बीच आसानी से स्विच करने के लिए आवश्यक कदम (यह मानते हुए कि आपके पास दो GitHub खाते हैं, github.com/ personal और gitHub.com/work ) हैं:

  1. मौजूदा एसएसवाई कुंजी के लिए जाँचें: टर्मिनल खोलें और मौजूदा कमांड ls -al ~/.ssh को देखने / देखने के लिए इस कमांड को चलाएं ls -al ~/.ssh
    एक्सटेंशन के साथ फाइल। .pub आपकी .pub कुंजी हैं ताकि आपके पास personal और work खातों के लिए दो होना चाहिए। यदि केवल एक या कोई भी नहीं है, तो इसका समय अन्य बुद्धिमानों को उत्पन्न करने के लिए इस को छोड़ दें।

    एसएसटी कुंजी उत्पन्न करना : जिथूब (या तो निजी या काम एसीसी) में प्रवेश करें, सेटिंग्स पर जाएं और संबद्ध ईमेल कॉपी करें
    अब टर्मिनल पर वापस जाएँ और ssh-keygen -t rsa -C "the copied email" चलाएं, आप देखेंगे:

    सार्वजनिक / निजी आरएसए कुंजी युग्म उत्पन्न करना
    कुंजी को बचाने के लिए फ़ाइल दर्ज करें (/…/.ssh/id_rsa):

    आईडी_आरएसए जल्द ही /.../.ssh/id_rsa_work कुंजी तैयार करने के लिए डिफ़ॉल्ट नाम है ताकि पथ की प्रतिलिपि बनाएँ और डिफ़ॉल्ट का नाम बदलें, जैसे /.../.ssh/id_rsa_work अगर कार्य खाते के लिए जेनरेट करते हैं एक पासवर्ड प्रदान करें या सिर्फ उपेक्षा करने के लिए दर्ज करें और, आप कुंजी की यादृच्छिक छवि जैसे कुछ पढ़ लेंगे : और छवि किया हुआ।
    इस चरण को दोबारा अपने दूसरे गिटब खाते के लिए दोहराएं। ओवरराइटिंग से बचने के लिए सुनिश्चित करें कि आप सही ईमेल पता और एक अलग एसएसपी कुंजी नाम (उदा। Id_rsa_personal) का उपयोग करते हैं।
    इस स्तर पर, आपको ls -al ~/.ssh फिर से चलाने के दौरान दो एसएस कुंजी देखेंगे।

  2. जीआईटीएचब अकाउंट के साथ एसएसआईपी कुंजी एसएसआईटी कुंजी: एसएसपी कुंजी में से एक को कॉपी करने के लिए अगला कदम है, इसे चलाने पर अपना स्वयं का pbcopy < ~/.ssh/id_rsa_work.pub नाम बदलने id_rsa_work.pub : pbcopy < ~/.ssh/id_rsa_work.pub , pbcopy < ~/.ssh/id_rsa_work.pub को प्रतिस्थापित करें, जिसे आपने कहा था
    अब जब हमारी एसएसबी कुंजी क्लिपबोर्ड पर कॉपी की जाती है, तो गिटूब खाते पर वापस जाएं [सुनिश्चित करें कि आपने काम करने के लिए लॉग इन किया है, यदि आपने प्रतिलिपि की गई id_rsa_work है तो id_rsa_work ] और नेविगेट करें
    सेटिंग्स – एसएसएच और जीपीजी कुंजी और नए एसएसएच कुंजी बटन पर क्लिक करें (न कि नई जीपीजी कुंजी बीटीडब्ल्यू: डी)
    इस कुंजी के लिए कुछ शीर्षक दें, कुंजी चिपकाएं और एसएसएच कुंजी जोड़ें पर क्लिक करें। अब आपने या तो सफलतापूर्वक एसएसपी कुंजी जोड़ दी है या यह देखा है कि यह सब कुछ ठीक है (या आपको एक त्रुटि मिली क्योंकि आपने नई एसएसएच कुंजी के बजाय नई जीपीजी कुंजी का चयन किया है: डी)।
  3. जीआईटीएचब अकाउंट के साथ संबद्ध एसएसपी कुंजी : अपने दूसरे खाते के लिए उपरोक्त कदम दोहराएं।
  4. वैश्विक जीआईटी कॉन्फिगरेशन को संपादित करें: अंतिम चरण यह सुनिश्चित करने के लिए है कि वैश्विक विन्यास फाइल को सभी गिथब खातों (इतने पर) के बारे में पता है।
    इस वैश्विक फ़ाइल को संपादित करने के लिए git config --global --edit चलाएं, अगर यह वीआईएम खोलता है और आप इसका उपयोग कैसे नहीं करते हैं, तो i सम्मिलित करें मोड डालने के लिए, नीचे के रूप में फाइल को संपादित करने के लिए दबाएं, और उसके बाद esc दबाएं :wq डालने मोड से बाहर निकलने के लिए:

    [inside this square brackets give a name to the followed acc.] name = github_username email = github_emailaddress [any other name] name = github_username email = github_email [credential] helper = osxkeychain useHttpPath = true

हो गया! अब जब आपको रेपो से पुश करने या खींचने का प्रयास किया जाता है, तो आपको पूछा जाएगा कि कौन से गिथहब खाता इस रेपो से जुड़ा होना चाहिए और इसके केवल एक बार पूछे जाने पर, स्थानीय कॉन्फ़िगरेशन इस लिंक को याद रखेगा और वैश्विक कॉन्फ़िगरेशन नहीं, ताकि आप काम कर सकें। अलग-अलग रेपो पर जो हर बार वैश्विक कॉन्फ़िगरेशन को संपादित किए बिना अलग-अलग खातों से जुड़ा हुआ है