文章推薦: GitHub 新手使用手冊
生成 ssh 密鑰
這里我們要做的事情就是分別對 github 和 gitlab 生成對應(yīng)的密鑰(默認情況下本地生成的秘鑰位于 "/Users/用戶/.ssh/")嘿辟,并且配置 git 訪問不同host時訪問不同的密鑰燃乍,流程如下:
- 在 gitbash 中使用
ssh-keygen -t rsa -C "公司郵箱地址"
生成對應(yīng)的 gitlab 密鑰:id_rsa 和 id_rsa.pub - 將 gitlab 公鑰即 id_rsa.pub 中的內(nèi)容配置到公司的 gitlab 上
- 在 gitbash 中使用
ssh-keygen -t rsa -C "github 郵箱地址" -f ~/.ssh/id_rsa.github
生成對應(yīng)的 github 密鑰:id_rsa.github 和 id_rsa.github.pub - 將 github 公鑰即 id_rsa.github.pub 中的內(nèi)容配置到自己的 github 上
- 進入密鑰生成的位置盐茎,創(chuàng)建一個 config 文件,添加配置:
Host gitlab
HostName git.xxx.com
User wells
IdentityFile ~/.ssh/id_rsa
Host github.com
HostName github.com
User shenxh
IdentityFile ~/.ssh/id_rsa.github
常用 SSH 配置項
- Host 別名
- HostName 主機名 (域名)
- Port 端口
- User 用戶名
- IdentityFile 密鑰文件的路徑
- IdentitiesOnly 只接受SSH key 登錄
- PreferredAuthentications 強制使用Public Key驗證
測試連接
在密鑰的生成位置 /Users/用戶名/.ssh/
下使用 gitbash 運行 ssh -T git@hostName
命令測試 sshkey 對 gitlab 與 github 的連接:
ssh -T git@gitlab
// Welcome to GitLab, @wells!
ssh -T git@github.com
// Hi shenxh! 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盛杰,無論你當前在用的庫是什么挽荡,特定指向該單一的庫。每個級別重寫前一個級別的值
簡單了解后我們就可以來配置了
- 用戶級別配置
因為公司的代碼使用頻率較高即供,所以我們將git配置文件的 global(用戶級別)設(shè)置為公司的 gitlab 賬號,在 gitlab 中使用如下命令:
$ git config --global user.name "wells" // 公司賬號名稱
$ git config --global user.email "wells@companyName.com" // 公司賬號郵箱
- 倉庫級別配置
我們將 local(倉庫級別)配置成 github 的賬號定拟。此時我們需要先 init 一個 git 的倉庫并進入里面后執(zhí)行如下命令:
$ git config --local user.name "shenxh" // github 賬號名稱
$ git config --local user.email "email@qq.com" // github 賬號郵箱
之后我們 github 的代碼都應(yīng)該在這個倉庫下拉取
- 克隆代碼
在使用 github 克隆代碼時,因為配置了 config, 所以會通過配置的 host 自動查找到 git@github.com, 對于 gitlab 也是相同的道理
至此逗嫡,在同一臺電腦上使用 gitlab 與 github 已經(jīng)成功了青自,盡情感受吧