यह मेरे वर्तमान कार्य के समान है। ऐसा लगता है कि आपने पहले से ही अपना अलग सेट कर लिया है, ssh-keys
इसलिए आपको एक ~/.ssh/config
फ़ाइल बनाने और इसे इसी तरह से जानकारी के साथ पॉप्युलेट करने की आवश्यकता है :
Host work.github.com
HostName github.com
User WORK_GITHUB_USERNAME
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_work_rsa
IdentitiesOnly yes
Host personal.github.com
HostName github.com
User PERSONAL_GITHUB_USERNAME
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_personal_rsa
IdentitiesOnly yes
हर संपत्ति बहुत आत्म व्याख्यात्मक लगता है, लेकिन IdentitiesOnly
एक। मैं यह समझाने की कोशिश नहीं करूंगा कि यह किस लिए है, लेकिन यह मेरे वर्तमान सेटअप में है और ठीक काम करता है।
यह भी ध्यान देने योग्य है कि Host URL
सही उपयोगकर्ता सेटिंग्स को हथियाने के लिए सिर्फ एक पॉइंटर है और आपके लक्ष्य HostName
यूआरएल के लिए फ़ाइलों को सही तरीके से प्राप्त करने पर कोई प्रभाव नहीं पड़ता है ।
अब आपको केवल यह सुनिश्चित करने की आवश्यकता है कि आपका origin
(या remote
सामान्य रूप से कोई भी ) url Host
आपके संबंधित नाम में आपके उपयोगकर्ता नाम के आधार पर सही url से मेल खाता है । यदि आपके पास पहले से मौजूद व्यक्तिगत रिपॉजिट हैं, तो आप उस रेपो की .git/config
फाइल को अपने टेक्स्ट एडिटर में एडिट कर सकते हैं :
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@personal.github.com:PERSONAL_GITHUB_USERNAME/project.git
या इसे कमांड लाइन के माध्यम से करें:
git remote set-url origin git@personal.github.com:PERSONAL_GITHUB_USERNAME/project.git
इसी तरह अपने काम करने के लिए एक:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@work.github.com:your_work_organization/project.git
या फिर, कमांड लाइन के माध्यम से:
git remote set-url origin git@work.github.com:your_work_organization/project.git
बेशक, आप हमेशा की तरह Host
अपनी ~/.ssh/config
फ़ाइल में अपना एक यूआरएल सेट कर सकते हैं
Host github.com
मैं केवल work.github.com
विन्यास संबंधों को आसान देखता था।
एक बार ये सभी सेट हो जाने के बाद, आपको प्रत्येक संबंधित रिमोट को पुश करने में सक्षम होना चाहिए।
संपादित करें
ध्यान देने वाली एक बात जो मुझे अभी पता चली है वह यह है कि यदि आपने कभी अपने user.email
मूल्य के लिए वैश्विक git config मान निर्धारित किया है (और मैं अनुमान लगा रहा हूं कि user.name
एक अलग मूल्य भी भेजेगा), git आपके ईमेल उपयोगकर्ता के रूप में आपके कमिट दिखाएगा। इसके आस-पास जाने के लिए, आप अपने स्थानीय रिपॉजिटरी के भीतर वैश्विक git config सेटिंग्स को ओवरराइड कर सकते हैं:
$ git config user.name "John Doe"
$ git config user.email johndoe@example.com
यह अब उस रेपो के लिए सही उपयोगकर्ता के रूप में भेजना चाहिए।