【问题标题】:How to specify multiple user.name and user.email for different git remotes?如何为不同的 git 遥控器指定多个 user.name 和 user.email?
【发布时间】:2017-07-14 13:28:46
【问题描述】:

我的本​​地机器上有一个存储库。这个存储库有 2 个 git 遥控器。遥控器 A 和 B。

  • 远程A需要user.nameXuser.emailY
  • 远程B需要user.nameZuser.emailW

这可以在git中实现吗?如果有,怎么做?

【问题讨论】:

  • 为两个遥控器创建两个存储库。在每个存储库中配置 user.nameuser.emailgit config --localuser.nameuser.email 与遥控器无关。
  • 您的 bitbucket 和 github 帐户的用户名和电子邮件不同,怎么样?您不能同时使用它们作为远程存储库吗?
  • user.nameuser.email 与遥控器无关。它们仅用于将提交者的姓名/电子邮件放入提交中,仅此而已。如果您想对不同的遥控器有不同的授权,您可以创建不同的 ssh 密钥并将 ssh 配置为将每个密钥用于不同的远程主机。

标签: git


【解决方案1】:

使用 Git 2.13,您现在拥有 conditional include for git config,但它仅基于存储库的文件系统路径。

所以你仍然需要同一个 repo 的两个不同副本。你可以实现with git worktree(一个克隆,多个工作树)

然后,您可以修改您的 global 配置规范,以包含具有特定 user.name/user.email 集合的本地配置,具体取决于您当前的文件夹。
参见pltvsAlex Pliutau)中的“Using different Git emails

【讨论】:

    【解决方案2】:

    我认为你可以通过使用--local而不是--global来做这样的事情

    一个 git config user.email Y git config user.name "X"

    B git config user.email W git config user.name "Z"

    存储在 .git/config 中的特定 repo 的值而不是全局配置文件。

    【讨论】:

    • 这是否意味着如果我必须推送到远程 A 我必须执行 git config 然后再执行一次 git config 然后再推送到远程 B?
    猜你喜欢
    • 2017-06-29
    • 1970-01-01
    • 2021-12-18
    • 2016-11-08
    • 2020-08-09
    • 2014-06-20
    • 2021-02-16
    • 2015-06-22
    • 1970-01-01
    相关资源
    最近更新 更多