我正在使用多个 GitHub 帐户(比如说
userA
和 userB
...)。我的文件夹架构是
Projects/
|- userA/
|- projectA1/
|- projectA2/
|- ... All the repository accessible by userA
|- userB/
|- projectB1/
|- projectB2/
|- ... All the repository accessible by userB
|- ...
有些用户可能需要 SSH 配置,有些用户可能不需要。
是否可以进行设置,以便当我在文件夹
userA
下的任何位置工作时,git用户是userA
,同样,当我在文件夹userX
下工作时,git用户是userX
?
在@phd的评论和其他答案的帮助下
我就是这样做的。
我无法对某些不使用 ssh 密钥的帐户进行设置。所以我让他们都使用一个。在这个例子中,我给出了
userA
和 userB
。
~/.giconfig
以根据文件夹使用不同的 .gitconfig
文件:~/.gitconfig
:
[includeIf "gitdir:~/userA/"]
path = ~/userA/.gitconfig-user-a
[includeIf "gitdir:~/userB/"]
path = ~/userB/.gitconfig-user-b
~/userA/.gitconfig-user-a
:
[user]
name = userA
email = [email protected]
~/userB/.gitconfig-user-b
:
[user]
name = userB
email = [email protected]
ssh-keygen -t ed25519 -C "[email protected]" -f "User/valentin/.ssh/id_ed25519_user_a"
ssh-keygen -t ed25519 -C "[email protected]" -f "User/valentin/.ssh/id_ed25519_user_b"
~/.ssh/config
:Host github_user_a
HostName github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519_user_a
Host github_user_b
HostName github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519_user_b
对于
user_x
,请使用 复制密钥
pbcopy < ~/.ssh/id_ed25519_user_x.pub
并将其粘贴到
github.com > Settings > Access > SSH and GPG keys > SSH keys > New SSH key > Key
:
userA/repo_a
中的 userA
),使用 SSH 而不是 https,并将 github.com
替换为 github_user_a
:git clone git@github_user_a:userA/repo_a.git