एक कमांड github खाते स्विच करते हैं
यह घोल एकल गिट उर्फ का रूप लेता है। एक बार निष्पादित होने के बाद, वर्तमान प्रोजेक्ट उपयोगकर्ता किसी अन्य खाते से संलग्न हो जाएगा
Ssh कुंजी उत्पन्न करें
ssh-keygen -t rsa -C "rinquin.arnaud@gmail.com" -f '/Users/arnaudrinquin/.ssh/id_rsa'
[...]
ssh-keygen -t rsa -C "arnaud.rinquin@wopata.com" -f '/Users/arnaudrinquin/.ssh/id_rsa_pro'
उन्हें अपने GitHub / Bitbucket खातों से लिंक करें
- डिफ़ॉल्ट सार्वजनिक कुंजी की प्रतिलिपि बनाएँ
pbcopy < ~/.ssh/id_rsa.pub
- अपने GitHub acount में लॉगिन करें
add SSH key
जीथब पृष्ठ में कुंजी चिपकाएँ
- अन्य सार्वजनिक कुंजी कॉपी करें
pbcopy < ~/.ssh/id_rsa_pro.pub
- हर दूसरे खाते के लिए चरण 2 से 4 दोहराएं और अनुकूलित करें
चरण 1. स्वचालित ssh कुंजी स्विचिंग।
हम ssh
एक विशिष्ट एन्क्रिप्शन कुंजी का उपयोग करने के लिए कॉन्फ़िगर कर सकते हैं host
। अच्छी बात यह है कि आपके पास इसके लिए कई उपनाम हो सकते हैं hostname
।
इस उदाहरण ~/.ssh/config
फ़ाइल को देखें :
# Default GitHub
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
# Professional github alias
Host github_pro
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_pro
git दूरस्थ विन्यास
अब आप को बदलने के द्वारा Git रिमोट में इन अन्य नामों का उपयोग कर सकते git@github.com
द्वारा git@github_pro
।
आप या तो अपनी मौजूदा परियोजनाओं के रिमोट को बदल सकते हैं (जैसे कुछ का उपयोग करके git remote set-url origin git@github_pro:foo/bar.git
) या उन्हें क्लोन करने पर सीधे अनुकूलित कर सकते हैं।
git clone git@github.com:ArnaudRinquin/atom-zentabs.git
उपनाम का उपयोग करते हुए, यह बन गया:
git clone git@github_pro:ArnaudRinquin/atom-zentabs.git
चरण 2. परिवर्तन git user.email
Git config सेटिंग वैश्विक या प्रति प्रोजेक्ट हो सकती है। हमारे मामले में, हम प्रति प्रोजेक्ट सेटिंग चाहते हैं। इसे बदलना बहुत आसान है:
git config user.email 'arnaud.rinquin@wopata.com'
हालांकि यह आसान है, यह उन डेवलपर्स के लिए लंबे समय तक ले जाता है जो हम हैं। हम इसके लिए एक बहुत ही सरल git उपनाम लिख सकते हैं।
हम इसे ~/.gitconfig
फ़ाइल में जोड़ने जा रहे हैं ।
[user]
name = Arnaud Rinquin
email = rinquin.arnaud@gmail.com
...
[alias]
setpromail = "config user.email 'arnaud.rinquin@wopata.com'"
फिर, हमें केवल इतना करना है git setpromail
कि इस परियोजना के लिए हमारे ईमेल को बदल दिया जाए।
चरण 3। एक आदेश स्विच कृपया !?
क्या एकल पैरामीटर-कम कमांड वाले डिफ़ॉल्ट खाते से निर्दिष्ट एक पर स्विच करना अच्छा नहीं होगा? यह निश्चित रूप से संभव है। इस कमांड के दो चरण होंगे:
- वर्तमान परियोजना को बदलने के लिए चुने हुए उपनामों को दर्शाता है
- वर्तमान प्रोजेक्ट user.email config बदलें
हमारे पास पहले से ही दूसरे चरण के लिए एक कमांड सॉल्यूशन है, लेकिन पहला रास्ता कठिन है। एक कमांड दूरस्थ होस्ट परिवर्तन
यहाँ एक और git उर्फ कमांड के रूप में समाधान आपके पास जोड़ने के लिए आता है ~/.gitconfig
:
[alias]
changeremotehost = !sh -c \"git remote -v | grep '$1.*fetch' | sed s/..fetch.// | sed s/$1/$2/ | xargs git remote set-url\"
यह एक मेजबान से दूसरे (उपनाम) के लिए सभी रिमोट को बदलने की अनुमति देता है। उदाहरण देखें:
$ > git remote -v
origin git@github.com:ArnaudRinquin/arnaudrinquin.github.io.git (fetch)
origin git@github.com:ArnaudRinquin/arnaudrinquin.github.io.git (push)
$ > git changeremotehost github.com github_pro
$ > git remote -v
origin git@github_pro:ArnaudRinquin/arnaudrinquin.github.io.git (fetch)
origin git@github_pro:ArnaudRinquin/arnaudrinquin.github.io.git (push)
उन सभी को मिलाएं
अब हमें केवल दो कमांड को एक में मिलाना है, यह काफी आसान है। देखें कि मैं कैसे बिटबकेट होस्ट स्विचिंग को एकीकृत करता हूं।
[alias]
changeremotehost = !sh -c \"git remote -v | grep '$1.*fetch' | sed s/..fetch.// | sed s/$1/$2/ | xargs git remote set-url\"
setpromail = "config user.email 'arnaud.rinquin@wopata.com'"
gopro = !sh -c \"git changeremotehost github.com github_pro && git changeremotehost bitbucket.com bitbucket_pro && git setpromail\"
स्रोत लिंक -Tutorial