GitHub
、GitLab
是目前最流行的代碼託管平臺,前者經常用於我的代碼託管,然後者經常使用於企業代碼託管。所以在實際工做中,咱們一般會在同一臺電腦設備上,使用這兩個平臺進行代碼託管。git
SSH-Key
是這兩個平臺的密鑰認證方式,爲本身的電腦添加密鑰認證,能夠更加簡單、高效、安全地完成代碼託管的工做。github
本文將詳細講解如何在同一臺電腦上爲兩個平臺添加不一樣的SSH-Key
,而且管理這些密鑰。安全
用本身的郵箱註冊GitHub
、Gitlab
帳號,註冊過程忽略。bash
Git安裝包網址ssh
進入網站下載本身電腦對應的版本、直接安裝便可。gitlab
安裝完成後,在CMD
中輸入下面的代碼,查看Git
的版本號。測試
git -- version
複製代碼
打開GitBash
(Git
安裝成功後會自動在鼠標右鍵添加GitBash
)輸入如下命令生成密鑰。網站
ssh-keygen -t ed25519 -C "email@example.com" -f ~/.ssh/gitlab_id_rsa
ssh-keygen -o -t rsa -b 4096 -C "email@example.com" -f ~/.ssh/gitlab_id_rsa
email@example.com 表明註冊Gitlab帳號時用的郵箱
-f 表明文件名
~/.ssh/ 表明ssh的文件路徑
gitlab_id-rsa 表明ssh文件名(能夠自定義)
複製代碼
到這裏,咱們就生成了一個Gitlab
的密鑰,GitHub
密鑰的生成方式同上。ui
複製密鑰的方式有兩種。加密
輸入cat ~/.ssh/ssh文件名 | clip
,例如cat ~/.ssh/gitlab_id_rsa.pub | clip
,複製ssh key。
直接用記事本打開gitlab_id-rsa.pub
,複製SSH-Key
。
複製好對應平臺的密鑰後,就能夠到對應平臺的SSH-Key
中添加密鑰了
添加完SSH-Key
後,咱們須要測試密鑰是否可用,以GitHub
爲例,在GitBash
中輸入如下的命令。
ssh -T git@github.com
複製代碼
如圖所示GitHub
的密鑰認證成功,Gitlab
密鑰認證的測試方式同上。
須要注意的是,因爲Gitlab
是私有代碼倉庫,測試時須要在git@
後面輸入Gitlab
所在ip地址
或域名
,才能正確測試。
當你在同一臺電腦下生成多個密鑰時,你就須要對多個密鑰進行認證管理,不然你的密鑰將沒法正常使用。
具體步驟以下。
首先在./ssh/
文件夾下手動config
文件,配置密鑰信息。
# gitlab
Host gitlab.com
HostName gitlab.com
User root
IdentityFile ~/.ssh/id_rsa
# github
Host github.com
HostName github.com
User root
IdentityFile ~/.ssh/id_rsa_github
Host 表明 關鍵詞
HostName 表明 主機地址
User 表明 用戶名
IdentityFile 表明 認證文件
複製代碼
完成配置,還須要對每一個密鑰添加信任,打開Git Bash
輸入下面的指令。
eval $(ssh-agent -s)
ssh-add ~/.ssh/other_id_rsa
eval 表明 開啓代理認證指令
ssh-add 表明 添加ssh文件認證
複製代碼
須要重點提醒,config
文件主要用於管理密鑰信息,並無實際功能,不添加config
文件直接爲密鑰添加信任也是能夠的。
可是考慮到密鑰信息的管理,強烈建議添加config
文件,配置好密鑰的信息。
完成多祕鑰認證後,經過ssh -T git@
,測試不一樣平臺的密鑰是否能鏈接成功。
最後附上經常使用的Git
命令,供你們參考使用
檢出倉庫:$ git clone [git url]
查看遠程倉庫:$ git remote -v
添加遠程倉庫:$ git remote add [name] [url]
刪除遠程倉庫:$ git remote rm [name]
修改遠程倉庫:$ git remote set-url --push[name][newUrl]
拉取遠程倉庫:$ git pull [remoteName] [localBranchName]
推送遠程倉庫:$ git push [remoteName] [localBranchName]
複製代碼
查看本地分支:$ git branch
查看遠程分支:$ git branch -r
建立本地分支:$ git branch [name] ----注意新分支建立後不會自動切換爲當前分支
切換分支:$ git checkout [name]
建立新分支並當即切換到新分支:$ git checkout -b [name]
建立遠程分支(本地分支push到遠程):$ git push origin [name]
合併分支:$ git merge [name] ----將名稱爲[name]的分支與當前分支合併
刪除本地分支:$ git branch -d [name]
刪除遠程分支:$ git push origin -d [name]
複製代碼
查看當前項目下全部文的狀態:$ git status
(.)點表示當前目錄下的全部內容,交給git管理:$ git add .
對你更新或修改了哪些內容作一個描述:$ git commit –m」new natter 」
查看你當前項目遠程鏈接的是哪一個倉庫地址:$ git remote -v
將本地的項目提交到遠程倉庫中:$ git push origin master
將遠程倉庫項目拉到本地項目中:$ git pull origin master
複製代碼
以上就是本文的所有內容了,感謝你的閱讀,若是你有什麼疑問或者建議,歡迎你隨時留言,互相討論。
最後,祝工做順利,生活幸福。