github和gitlab同時使用

2021-10-01 18:21:21 字數 2892 閱讀 5499

由於公司團隊使用 gitlab 來託管**,同時,個人在 github 上還有一些**倉庫,可公司郵箱與個人郵箱是不同的,由此產生的 ssh key 也是不同的,這就造成了衝突 ,如何在一台機器上面同時使用 github 與 gitlab 的服務?

如果採用ssh協議或者git 協議通過終端命令對遠端倉庫進行push操作的時候,大概的過程如下:(前提在 github 上已經配置的本機的 ssh public key)

無論使用哪種**託管服務商,對於 git 而言,郵箱是識別使用者的唯一手段,所以對於不同的服務商,由於郵箱不同,那麼通過郵件名建立的 ssh key 自然是不同的,這時候在不同的服務商之間進行push命令的時候,git 是不知道使用哪個 ssh key ,自然導致push的失敗。場景如下:

由於郵箱是識別的唯一手段,那麼自然的,這兩者採用同乙個郵箱,生成的 public key 也會是同乙個,上傳到 github 或者 gitlab 上面,在 git 的配置中 ,設定好 global 的配置 :git config --global user.name 'voluee' && git config --global user.email 'personal@***.com'進行日常的開發是沒有問題的。

實際生活中採用同乙個郵箱的可能性並不是太大,這就引出了方案二

所謂的方案二,原理上就是對 ssh 協議配置 config 檔案,對不同的網域名稱採用不同的認證金鑰。

git config 介紹

git有乙個工具被稱為git config,它允許你獲得和設定配置變數;這些變數可以控制git的外觀和操作的各個方面。這些變數可以被儲存在三個不同的位置:

配置流程

1. 配置 git 使用者名稱、郵箱

# 全域性配置,github倉庫中預設使用此配置

git config --global user.name "voluee"

&&git config --global user.email "personal@***.com"

# 團隊專案配置,每次新建立乙個專案,需要執行下

git config --local user.name "voluee"

&&git config --local user.email "company@***.com"

2.生成 ssh key 上傳到 github/gitlab

ssh key 預設生成後儲存在 ~/.ssh/目錄下 ,分別為gitlab_id_rsa和github_id_rsa兩個檔案,由於我們需要分開配置,所以這麼做:

#建立gitlab的ssh-key

ssh-keygen -t rsa -

c"company@***.com"

-f ~

/.ssh/gitlab_id_rsa

#建立github的ssh-key

ssh-keygen -t rsa -

c"personal@***.com"

-f ~

/.ssh/github_id_rsa

命令執行完成後,這時~/.ssh目錄下會多出gitlab_id_rsagithub_id_rsa四個檔案,***.pub裡儲存的就是我們要使用的key,這個key就是用來上傳到gitlab和github上的。

3.配置 config 檔案

~/.ssh目錄下,如果不存在,則新建touch ~/.ssh/config檔案 ,檔案內容新增如下:

#gitlab

host [這裡填gitlab真實位址,就是clone的字首]

hostname [這裡填gitlab真實位址]

preferredauthentications publickey

identityfile ~/.ssh/gitlab_id_rsa

#github

host github

hostname github.com

preferredauthentications publickey

identityfile ~/.ssh/github_id_rsa

4.上傳public key 到 github/gitlab

以github為例,過程如下:

5.驗證是否ok

由於每個託管商的倉庫都有唯一的字尾,比如 github的是[email protected]:*,所以可以這樣測試:

ssh -t [email protected]

hi ciqing! you've successfully authenticated, but github does not provide shell access.

ssh -t git@[這裡填gitlab真實位址,就是clone的字首]

welcome to gitlab, voluee!

看到這些welcome資訊,說明就是ok的了

git config --list

git config --system --list

git config --global --list

git config --local --list

cmd,git_bash不走**,所以得配置,前提是你有vpn已經**了指定埠

同時使用GitHub和GitLab

由於公司團隊使用 gitlab 來託管 同時,個人在 github 上還有一些 倉庫,可公司郵箱與個人郵箱是不同的,由此產生的 ssh key 也是不同的,這就造成了衝突 如何在一台機器上面同時使用 github 與 gitlab 的服務?問題產生場景 無密碼與遠端伺服器互動的秘密 ssh 如果採用...

同時使用 GitHub 和 GitLab

先說一下寫這篇部落格的緣由,之前自己開發專案的時候都是用 github 來託管 但是實習之後由於公司專案隱私問題,給分配了 gitlab 的使用者名稱和郵箱,當時我就直接在電腦上把使用者名稱和密碼進行了全域性配置,自那以後我在實習之餘做自己的專案時,每次往 github 上提交 都沒有我的 cont...

GitHub和gitlab同時使用

首先先本地申請秘鑰對,為了方便申請在同一目錄下。注意一路enter就行。ssh keygen t rsa c 1112346 qq.com f ssh gitlab id rsa ssh keygen t rsa c 1112346 qq.com f ssh github id rsa然後在各自的 ...