与文件夹和 SSH 配置关联的多个 git 帐户

问题描述 投票:0回答:1

我正在使用多个 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 

git github ssh ssh-keys
1个回答
0
投票

@phd的评论和其他答案的帮助下

我就是这样做的。

我无法对某些不使用 ssh 密钥的帐户进行设置。所以我让他们都使用一个。在这个例子中,我给出了

userA
userB

  1. 更新
    ~/.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]
  1. 按照生成新的 SSH 密钥并将其添加到 ssh-agent 的步骤操作。每个用户一个:
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"
  1. 更新您的
    ~/.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

  1. 将 ssh 密钥添加到相关的 github 帐户。您可以按照向您的 GitHub 帐户添加新的 SSH 密钥

对于

user_x
,请使用

复制密钥
pbcopy < ~/.ssh/id_ed25519_user_x.pub

并将其粘贴到

github.com > Settings > Access > SSH and GPG keys > SSH keys > New SSH key > Key
:

Add new SSH key screenshot

  1. 克隆存储库时(例如在文件夹
    userA/repo_a
    中的
    userA
    ),使用 SSH 而不是 https,并将
    github.com
    替换为
    github_user_a
git clone git@github_user_a:userA/repo_a.git
© www.soinside.com 2019 - 2024. All rights reserved.