換了工作后使用的是gitlab冕广,這樣對github的使用會有影響。為了解決這個問題偿洁,搜了很多資料后完美解決〖岩ぃ現(xiàn)在把它記錄下來。
前言
在同一臺電腦上使用github和gitlab父能,主要的思想就是使用不同的倉庫時神凑,切換成不同的賬號。不同賬號的sshKey分別對應(yīng)github和gitlab。接下來跟著我看看怎么做吧_
一溉委、生成ssh密鑰
這里我們要做的事情就是分別對githubn和gitlab生成對應(yīng)的密鑰(默認情況下本地生成的秘鑰位于/Users/用戶名/.ssh/)鹃唯,并且配置git訪問不同host時訪問不同的密鑰,流程如下:
1瓣喊、 在gitbash中使用ssh-keygen -t rsa -C "公司郵箱地址"
生成對應(yīng)的gitlab密鑰:id_rsa和id_rsa.pub
2坡慌、 將gitlab公鑰即id_rsa.pub中的內(nèi)容配置到公司的gitlab上
3、 在gitbash中使用ssh-keygen -t rsa -C "github地址" -f ~/.ssh/github_rsa
生成對應(yīng)的github密鑰:github_rsa和github_rsa.pub
4藻三、 將github公鑰即github_rsa.pub中的內(nèi)容配置到自己的github上
5洪橘、 進入密鑰生成的位置,創(chuàng)建一個config
文件棵帽,添加配置:
# gitlab
Host gitlab
HostName git.xxx.com #這里填你的gitlab的Host
User git
IdentityFile ~/.ssh/id_rsa
# githab
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/github_rsa
二熄求、測試連接
在密鑰的生成位置/Users/用戶名/.ssh/下使用gitbash運行ssh -T git@hostName
命令測試sshkey對gitlab與github的連接:
catalinaLi@catalinaLi MINGW64 ~/.ssh
$ ssh -T git@gitlab
Welcome to GitLab, catalinaLi!
catalinaLi@catalinaLi MINGW64 ~/.ssh
$ ssh -T git@github.com
Hi catalinaLi! You've successfully authenticated, but GitHub does not provide shell access.
如果出現(xiàn)上圖結(jié)果就說明連接成功,如果不是這樣的話就仔細看看第一步哪里做錯了逗概。
三弟晚、配置git倉庫
這里我們要用到git的config配置。git的config文件記錄了用戶的基本信息逾苫,我們的賬號信息也在里面卿城,這里我們要做的就行在不同的本地倉庫配置不同的用戶信息來訪問不同的遠程倉庫。config文件通常有三個位置:
- system (系統(tǒng)級別):
位于Windows下在git的安裝目錄铅搓, 包含了適用于系統(tǒng)所有用戶和所有庫的值瑟押。如果你傳遞參數(shù)選項’--system’ 給 git config,它將明確的讀和寫這個文件星掰。 - global(用戶級別):
位于~/.gitconfig多望,具體到你的用戶。你可以通過傳遞--global 選項使Git 讀或?qū)戇@個特定的文件蹋偏。 - local(倉庫級別):
位于 .git/config,無論你當(dāng)前在用的庫是什么至壤,特定指向該單一的庫威始。每個級別重寫前一個級別的值。
簡單了解后我們就可以來配置了
1. 用戶級別配置
因為公司的代碼使用頻率較高像街,所以我們將git配置文件的global(用戶級別)設(shè)置為公司的gitlab賬號,在gitlab中使用如下命令:
$ git config --global user.name 'catalinaLi' #公司賬號名稱
$ git config --global user.email 'catalinaLi@companyName.com' #公司賬號郵箱
2. 倉庫級別配置
我們將local(倉庫級別)配置成github的賬號黎棠。此時我們需要先init一個git的倉庫并進入里面后執(zhí)行如下命令:
$ git config --local user.name 'username' #github賬號名稱
$ git config --local user.email 'username@gmail.com' #github賬號郵箱
之后我們github的代碼都應(yīng)該在這個倉庫下拉取。
3. 克隆代碼
$ git clone git@github.com:catalinaLi/ideaTaotao.git
在使用github克隆代碼時镰绎,因為配置了config, 所以會通過配置的host自動查找到git@github.com脓斩。對于gitlab也是相同的道理
至此,在同一臺電腦上使用gitlab與github已經(jīng)成功了畴栖,盡情感受吧随静。另外,大家可以尋找度娘來學(xué)習(xí)關(guān)于git的config的更多使用
參考資料
http://www.arccode.net/config-multi-git-account-and-workspaces.html
https://segmentfault.com/a/1190000002994742
本文作者: catalinaLi
本文鏈接: http://catalinali.top/2018/noteGithubGitlab/
版權(quán)聲明: 原創(chuàng)文章,有問題請評論中留言燎猛。非商業(yè)轉(zhuǎn)載請注明作者及出處恋捆。