我自己的git賬號屬于GitHub, 公司使用的是GitLab,公司配備了電腦。電腦已經(jīng)配置了公司的GitLab賬號了。雖然家里也有電腦,但是平時工作的一些總結(jié)什么的,想發(fā)到自己的GitHub上,總不能等到回家的時候再寫上吧~~~所以,我就想在公司電腦的基礎(chǔ)上,配置自己的GitHub。
我的配置主要參考了一篇文章《一臺電腦綁定兩個github賬號教程》。配置步驟差不多, 就是對有些地方容易搞錯。本文主要是在這篇文章地基礎(chǔ)上做記錄(綠色文字為我的記錄)。
ssh 方式鏈接到 Github/GitLab,需要唯一的公鑰,如果想同一臺電腦綁定兩個Github/GitLab 賬號,需要兩個條件:
解決方案:
用戶名/郵箱
設(shè)置,為每個倉庫獨立設(shè)置 用戶名/郵箱密鑰
ls ~/.ssh/
,看到 id_rsa
與 id_rsa_pub
則說明已經(jīng)有一對密鑰。如下圖id_rsa_2
(保證與之前密鑰文件名稱不同即可,文件名最好有意義,否則寫后面的配置的時候?qū)戝e文件名,我的文件名是id_rsa_ljy)ssh-keygen -t rsa -f ~/.ssh/id_rsa_2 -C "yourmail@xxx.com"
如下圖
.ssh
文件夾下新建 config
文件并編輯,令不同 Host 實際映射到同一HostName
,但密鑰文件不同。Host 前綴可自定義,例子中ieit
# default
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
# two
Host ieit.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_2
新建config的圖跟上面3.的圖一樣。之后我把上面的代碼拷過來,修改了Host和HostName(我把Host和HostName都寫一樣的)。具體他們的含義如下 :
- #Host myhost(這里是自定義的host簡稱,以后連接遠程服務(wù)器就可以用命令ssh myhost)[注意下面有縮進]
- #User 登錄用戶名(如:git)
- #HostName 主機名可用ip也可以是域名(如:github.com或者bitbucket.org)
- #Port 服務(wù)器open-ssh端口(默認:22,默認時一般不寫此行
- #IdentityFile 證書文件路徑(如~/.ssh/id_rsa_*)
引自《Git多賬號配置》,我的配置如下:
id_rsa.pub
,id_rsa_2.pub
內(nèi)容copy 到對應(yīng)的 repo(這里因為公司的配置很早就配置了。我是添加我的GitHub,所以我只做了一步:id_rsa_2.pub
內(nèi)容copy
到我的GitHub賬號配置那里,我沒有copy在repo的SSH key。因為我想讓我的這個電腦能訪問到GitHub賬號的所有工程)ssh -T git@ieit.github.com
ssh -T git@github.com
# Hi IEIT! You've successfully authenticated, but GitHub does not provide shell access.
# 出現(xiàn)上邊這句,表示鏈接成功
clone
到本地, folder-name
是本地文件夾路徑git clone git@github.com:whatever folder-name
# 取消全局 用戶名/郵箱 配置
git config –global –unset user.name
git config –global –unset user.email
# 單獨設(shè)置每個repo 用戶名/郵箱
git config user.email “xxxx@xx.com”
git config user.name “xxxx”
PS:(1)git config命令要到工程目錄下(反正就是git目錄)執(zhí)行,否則是出錯的,下面就是不在git目錄下執(zhí)行的結(jié)果:后來我恍然大悟,然后切換到工程目錄下執(zhí)行就OK了。
(2)“單獨設(shè)置每個repo 用戶名/郵箱”這個步驟,我就是跑到工程下,執(zhí)行g(shù)it config user.email “xxxx@xx.com”和git config user.name “xxxx”命令。看來以后每次我GitHub/GitLab clone一個新的工程下來,都要在clone完成后,在這個工程目錄下執(zhí)行這兩條語句來配置。【解決辦法】:工作電腦平時使用公司的gitlab比較多,可以把公司的賬戶設(shè)置為全局,然后在單獨的需要用別的賬號的工程下配置對應(yīng)的賬號。這樣就不用頻繁地做這個配置。(這個全局設(shè)置與單獨工程下設(shè)置地順序不做要求
git remote rm origin
git remote add origin git@ieit.github.com:whatever
git push origin master