如何在一臺機器上管理多個 Github 賬號

Matrixchan發表於2020-08-02

場景

在一臺電腦上,有兩個Repository ,它們分屬兩個不同的 Github 賬號。

步驟

為 Repository 配置 Github 的 Git 賬號

使用終端進入到 Repository A目錄下,配置 Git 賬號

$ git config user.name "user_a"
$ git config user.email "user_a@gmail.com"

使用終端進入到 Repository B 目錄下,配置 Git 賬號

$ git config user.name "user_b"
$ git config user.email "user_b@gmail.com"

為不同的 Github 使用者生成 SSH 金鑰

為 user_a 生成 SSH 金鑰,金鑰名為 user_a_id_rsa

$ ssh-keygen -t rsa -C "user_a@gmail.com"

同樣操作,為 user_b 生成 SSH 金鑰,金鑰名為 user_b_id_rsa

$ ssh-keygen -t rsa -C "user_b@gmail.com"

配置多賬戶的 SSH 匹配

在 .ssh 目錄下,新建 config 檔案,配置多使用者的金鑰:

host user_a_github.com
    Hostname github.com 
    User git 
    IdentityFile ~/.ssh/user_a_id_rsa  

host user_b_github.com
    Hostname github.com 
    User git 
    IdentityFile ~/.ssh/user_b_id_rsa

新增新的私鑰到 ssh-agent 快取中

$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/user_a_id_rsa
$ ssh-add ~/.ssh/user_b_id_rsa

修改 Repository 的 push 地址

對 Repository 中 .git/config 的 url 欄位值 git@github.com 修改。

修改 Repository A 的 push 地址:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = git@user_a_github.com:*********/***********.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[user]
    name = user_a
    email = user_A@gmail.com

修改 Repository A 的 push 地址:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = git@user_b_github.com.com:******/******.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[user]
    name = user_b
    email = user_b@gmail.com

至此,完畢。

一些命令

# 檢查當前使用者
ssh -vT git@github.com
# 檢查當初金鑰
ssh-add -l
# 新增金鑰
# 刪除金鑰
ssh-add -d /Users/****/.ssh/id_rsa
# 檢視 git config 配置
git config --list
本作品採用《CC 協議》,轉載必須註明作者和本文連結

Write the code.Change the world.

相關文章