如何在同一臺電腦上使用github和gitlab
一、生成ssh密鑰
這裏我們要做的事情就是分別對github和gitlab生成對應的密鑰(默認情況下本地生成的祕鑰位於/Users/用戶名/.ssh/
),並且配置git訪問不同host時訪問不同的密鑰,流程如下:
- 在gitbash中使用
ssh-keygen -t rsa -C "公司郵箱地址"
生成對應的gitlab密鑰:id_rsa
和id_rsa.pub
- 將gitlab公鑰即
id_rsa.pub
中的內容配置到公司的gitlab網站上 - 在gitbash中使用
ssh-keygen -t rsa -C "github地址" -f ~/.ssh/github_rsa
生成對應的github密鑰:github_rsa
和github_rsa.pub
- 將github公鑰即
github_rsa.pub
中的內容配置到自己的github網站上 - 進入密鑰生成的位置,創建一個
config
文件,添加配置:
# gitlab
Host gitlab
HostName git.xxx.com #這裏填你的gitlab的Host
PreferredAuthentications
publickey
IdentityFile ~/.ssh/id_rsa
# githab
Host github.com
HostName github.com
PreferredAuthentications
publickey
IdentityFile ~/.ssh/github_rsa
二、測試連接
在密鑰的生成位置/Users/用戶名/.ssh/下使用gitbash運行 ssh -T git@hostName
命令測試sshkey對gitlab與github的連接:
$ ssh -T git@gitlab
Welcome to GitLab, catalinaLi!
$ ssh -T [email protected]
Hi catalinaLi! You've successfully authenticated, but GitHub does not provide shell access.
如果出現上圖結果就說明連接成功,如果不是這樣的話就仔細看看第一步哪裏做錯了。
三、配置git倉庫
這裏我們要用到git的config配置。git的config文件記錄了用戶的基本信息,我們的賬號信息也在裏面,這裏我們要做的就行在不同的本地倉庫配置不同的用戶信息來訪問不同的遠程倉庫。config文件通常有三個位置:
system (系統級別):
位於Windows下在git的安裝目錄, 包含了適用於系統所有用戶和所有庫的值。如果你傳遞參數選項’–system’ 給 git config,它將明確的讀和寫這個文件。
global(用戶級別):
位於~/.gitconfig,具體到你的用戶。你可以通過傳遞–global 選項使Git 讀或寫這個特定的文件。
local(倉庫級別):
位於 .git/config,無論你當前在用的庫是什麼,特定指向該單一的庫。每個級別重寫前一個級別的值。
開始配置
簡單瞭解後我們就可以來配置了
- 用戶級別配置
因爲公司的代碼使用頻率較高,所以我們將git配置文件的global(用戶級別)設置爲公司的gitlab賬號,在gitlab中使用如下命令:
$ git config --global user.name 'myCompanyName' #公司賬號名稱
$ git config --global user.email '[email protected]' #公司賬號郵箱
- 倉庫級別配置
我們將local(倉庫級別)配置成github的賬號。此時我們需要先init一個git的倉庫並進入裏面後執行如下命令:
$ git config --local user.name 'username' #github賬號名稱
$ git config --local user.email '[email protected]'
#github賬號郵箱 之後我們github的代碼都應該在這個倉庫下拉取。
- 克隆代碼
$ git clone [email protected]:XXX/xxx.git
在使用github克隆代碼時,因爲配置了config, 所以會通過配置的host自動查找到[email protected]
。對於gitlab也是相同的道理
至此,在同一臺電腦上使用gitlab與github已經成功了。