配置同時使用 Gitlab 和 Github 的開發環境


Git 客戶端與服務器端的通信支持多種協議,ssh 最常用。ssh的公鑰登錄流程:用戶將自己的公鑰存儲在遠程主機,登錄時,遠程主機會向用戶發送一條消息,用戶用自己的私鑰加密后,再發給服務器。遠程主機用事先存儲的公鑰進行解密,如果成功,就證明用戶可信。

生成公私密鑰

用戶必須事先提供自己的公鑰給服務器,如果沒有,可以用 ssh-keygen 命令生成。該命令會生成兩個文件(公鑰 and 私鑰),默認路徑在用戶根目錄下的.ssh文件夾中。

注意: 默認生成的文件名是 id_rsa/id_rsa.pub,由於這里需要兩套密鑰,所以需為它們分別命名,以防止互相覆蓋。

執行下面命令生成密鑰:

ssh-keygen -t rsa -C "注冊 gitlab 賬戶的郵箱"

提示要輸入名稱時輸入 id_rsa_gitlab

ssh-keygen -t rsa -C "注冊 github 賬戶的郵箱"

提示要輸入名稱時輸入 id_rsa_github

提供公鑰給服務器

  1. 復制 ~/.ssh/id_rsa_gitlab.pub文件內容,進入gitlab / profile / SSH Keys,將公鑰內容添加至 gitlab 。
  2. 復制 ~/.ssh/id_rsa_github.pub文件內容,進入github / setting / SSH and GPG keys / New SSH key 將公鑰內容添加至 github 。

更新SSH配置

SSH 配置信息加載順序如下:

  1. 命令行配置參數
  2. 用戶級別的配置文件~/.ssh/config
  3. 系統級別的配置文件 /etc/ssh/ssh_config

根據我們實際情況,更新用戶級別配置信息即可,打開 SSH 客戶端配置文件 ~/.ssh/config 增加配置項,如果沒有就創建一個(是文本文件)。

SSH配置項有很多,詳見:https://man.openbsd.org/ssh_config 或r https://www.ssh.com/ssh/config/

在配置文件中加入以下內容

Host github.com
    HostName github.com
    User githubuser@xyz.com
    IdentityFile ~/.ssh/id_rsa_github

Host gitlab.com
    HostName gitlab.com
    User gitlabuser@xyz.com
    IdentityFile ~/.ssh/id_rsa_gitlab

配置倉庫用戶信息

Git 配置信息也有三個地方可以存儲,根據加載順序依次為:

  1. /etc/gitconfig 文件: 包含系統上每一個用戶及他們倉庫的通用配置。 如果使用帶有 --system 選項的 git config 時,它會從此文件讀寫配置變量。
  2. ~/.gitconfig~/.config/git/config 文件只針對當前用戶。 可以傳遞 --global 選項讓 Git 讀寫此文件。
  3. 當前使用倉庫的 Git 目錄中的 config 文件(就是 .git/config

不同倉庫鏈接不同的服務器,所用的git用戶信息也不同。可以把常用的git用戶信息配置到 ~/.gitconfig 中,不常用的我們在倉庫中單獨配置。以常用 gitlab 為例:

git config --global user.name "githubuser"
git config --global user.email "githubuser@xyz.com"

進入本地 github 倉庫配置 git 用戶信息

~/github$ git config --local user.name "githubuser"
~/github$ git config --local user.email "githubuser@xyz.com"

寫在后面

本文地址:https://www.cnblogs.com/kelsen/p/8342239.html

如果您有任何建議或疑問請在下面留言交流。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM