Git多账户使用

Git 同一台设备有多个 GitHub 账户管理

在使用 Git 时,有时我们可能需要同时管理多个 GitHub 账户。下面是一些步骤和建议来实现这一目标:

  1. 生成 SSH 密钥对: 对于每个 GitHub 账户,您需要生成一个 SSH 密钥对。可以使用以下命令生成新的 SSH 密钥对:

    1
    ssh-keygen -t rsa -C "your_email@example.com"

    请确保在生成密钥时使用不同的文件名和不同的电子邮件地址。

  2. 将 SSH 公钥添加到 GitHub 账户: 将生成的 SSH 公钥(通常在~/.ssh/id_rsa.pub中)添加到相应的 GitHub 账户的设置中。

  3. 配置用户信息: 使用以下命令配置每个 GitHub 账户的用户名和电子邮件地址:

    1
    2
    git config user.name "Your Name"
    git config user.email "your_email@example.com"

    这将设置局部的用户信息。请确保为每个 GitHub 账户设置不同的用户名和电子邮件地址。

  4. 配置 SSH 主机别名: 修改~/.ssh/config文件,为每个 GitHub 账户配置不同的主机别名和对应的私钥文件路径。例如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # stone
    Host stone
    HostName ssh.github.com
    User git
    IdentityFile ~/.ssh/id_rsa

    # david
    Host matrix
    HostName ssh.github.com
    User git
    IdentityFile ~/.ssh/id_rsa_hide_in_matrix

    这些别名将用于在不同的 GitHub 账户之间进行切换。

  5. **配置项目的 git 设置:**修改你项目下的.git/config 文件,线上项目地址(url)。例如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
    [remote "origin"]
    url = git@matrix:xxx/xxxx.git
    #. url = git@matrix:[你的github名字]/你的仓库
    fetch = +refs/heads/*:refs/remotes/origin/*
    [user]
    name = xxxxx
    email = xxx@gmail.com
  6. 测试连接: 使用以下命令测试每个 GitHub 账户的连接:

    1
    2
    ssh -T git@stone
    ssh -T git@david

    确保每个账户都能成功连接。

现在,您应该能够在同一台设备上成功管理多个 GitHub 账户了。可以根据需要在不同的仓库中使用不同的账户进行操作。