【问题标题】:Is it possible to specify different names and emails per git server (using subconfigs)?是否可以为每个 git 服务器指定不同的名称和电子邮件(使用子配置)?
【发布时间】:2023-03-25 20:13:01
【问题描述】:

我正在尝试创建一个个人 .gitconfig 文件来满足我在编码时的个人和专业需求。

我已设法根据存储库所在的位置以不同方式保存凭据。 请参阅下面的 Git 配置 sn-p:

[credential "https://github.com"]
        username = "myUsername"
        helper = "store"

这似乎工作正常,我对结果很满意。

我现在也在尝试对user.nameuser.email 做同样的事情。 请参阅下面的 Git 配置 sn-p:

[user "https://github.com"]
        email = "<private email>"
        name = "<private alias>"

当我使用此配置并尝试提交某些内容时,Git 拒绝并说:

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"   git config
--global user.name "Your Name"

to set your account's default identity. Omit --global to set the identity only in this repository.

我确定我提交的存储库位于 GitHub 上。

我看到有些人使用不同的包含语句来解决这个问题,但如果可能的话,我更愿意使用子配置来解决它。

有人可以帮我完成这项工作吗,或者至少解释一下为什么它不可能(如果是这样的话)。

感谢您的帮助。

【问题讨论】:

  • user.mail 和 user.email 会影响 revisions 本身,所以.....您是在谈论创建重复的修订版吗?
  • 我只希望当我提交到位于 GitHub 上的仓库时,我将使用 email1 和 name1,而当我提交到私有服务器上的仓库时,我将使用 email2 和 name2。那有意义吗? :) @eftshift0
  • 当您 commit 时,您不会使用远程 repo....您在本地 repo 上提交...并且电子邮件和电子邮件将是您所拥有的设置.....然后,当您推送到 X 个存储库时,修订将在提交时被推送,与您要推送到的任何远程无关。
  • 没错.. 嗯.. 这解释了为什么凭证设置有效,但名称/电子邮件也无效。您是否看到任何方法可以方便地完成我在这里尝试做的事情,或者我注定要兼顾不同的配置和导入语句,直到达到我的目标?如果您回复您的最后一条评论作为答案,我会将其标记为正确 :) 感谢您的帮助,@eftshift0。
  • 我的意思显然是“姓名和电子邮件”

标签: git configuration config git-config


【解决方案1】:

实际上,这通常是在您的全局配置文件中使用include/includeif section 完成的(我从未见过user.name 的子配置)。

[includeIf "gitdir:~/work/"]
    path = ~/work/.gitconfig

~/work 中的任何存储库都将使用~/work/.gitconfig,您可以在其中定义一组不同的user.name/user.email 设置。

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 2013-11-13
    • 2010-10-17
    • 2018-03-05
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 2011-08-12
    • 2020-11-20
    相关资源
    最近更新 更多