場景
在一臺電腦上,有兩個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 協議》,轉載必須註明作者和本文連結