DEC 7TH, 2014 | COMMENTSgit
作過不少遍了,卻老是記不住,這回從頭來描述一下。github
注意clone的時候 有2種 https和SSH 是有區別的bash
所謂多個git帳號,可能有兩種狀況:服務器
我有多個github的帳號,不一樣的帳號對應不一樣的repo,須要push的時候自動區分帳號app
我有多個git的帳號,有的是github的,有的是bitbucket的,有的是單位的gitlab的,不一樣帳號對應不一樣的repo,須要push的時候自動區分帳號ssh
這兩種狀況的處理方法是同樣的,分下面幾步走:gitlab
先假設我有兩個帳號,一個是github上的,一個是公司gitlab上面的。先爲不一樣的帳號生成不一樣的ssh-keyfetch
ssh-keygen -t rsa -f ~/.ssh/id_rsa_work -c xxx@gmail.com
url
而後根據提示連續回車便可在~/.ssh目錄下獲得id_rsa_work和id_rsa_work.pub兩個文件,id_rsa_work.pub文件裏存放的就是咱們要使用的keyspa
ssh-keygen -t rsa -f ~/.ssh/id_rsa_github -c xxx@gmail.com
而後根據提示連續回車便可在~/.ssh目錄下獲得id_rsa_github和id_rsa_github.pub兩個文件,id_rsa_gthub.pub文件裏存放的就是咱們要使用的key
把id_rsa_xxx.pub中的key添加到github或gitlab上,這一步在github或gitlab上都有幫助,再也不贅述
編輯 ~/.ssh/config
,設定不一樣的git 服務器對應不一樣的key
1 2 3 4 5 6 7 8 9 10 11 12 |
|
編輯完成後能夠使用命令 ssh -vT git@github.com
看看是否是採用了正確的id_rsa_github.pub文件
這樣每次push的時候系統就會根據不一樣的倉庫地址使用不一樣的帳號提交了
~/.ssh/config
內容應該是這樣的。 1 2 3 4 5 6 7 8 9 10 11 12 |
|
同時你的github的repo ssh url就要作相應的修改了,好比根據上面的配置,原鏈接地址是:
git@github.com:testA/gopkg.git
那麼根據上面的配置,就要把github.com
換成A.github.com
, 那麼ssh解析的時候就會自動把testA.github.com
轉換爲 github.com
,修改後就是
git@A.github.com:testA/gopkg.git
直接更改 repo/.git/config
裏面的url便可
這樣每次push的時候系統就會根據不一樣的倉庫地址使用不一樣的帳號提交了
很簡單, 直接更改 repo/.git/config
裏面的url便可,把裏面對應tag下的url增長一個就能夠了。例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
上面這個當即就是有4個遠端倉庫,不一樣的tag表示不一樣的遠端倉庫,最後的Origin標籤寫法表示默認push到github和codaset這兩個遠端倉庫去。固然,你能夠本身隨意定製tag和url
這個問題也困擾了我一段時間,後來發現修改 repo/.git/config
裏面的url,把https地址替換爲ssh就行了。
例如
url=https://MichaelDrogalis@github.com/derekerdmann/lunch_call.git
替換爲
url=ssh://git@github.com/derekerdmann/lunch_call.git