94

这个问题似乎是重复的,但实际上并非如此。只是一个不断重复的细微差别。git 不断告诉我:“请告诉我你是谁”,即使在设置之后也是如此。当我跑步时git commit,这就是我得到的......

$ git commit

*** 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.

fatal: unable to auto-detect email address (got 'Obby@ObbyWorkstation.(none)')

但是当我跑步时git config --global -l,它给了我所有的细节......

$ git config --global -l
user.name=myname
user.mail=me.myself@gmail.com
http.proxy=proxy.XX.XX.XX:XXXX

我已经更改了我的姓名、电子邮件和代理,但是当我运行命令时它们看起来很好,即使在 .gitconfig 文件中我也可以看到这些值已设置。可能缺少什么,因为我根本无法承诺。每次都问我是谁?

@sheu 告诉我一些我改变的东西,但仍然是同样的问题。当我设置时--local,仍然git commit问我同样的问题。这是输出

$ git config --local -l
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
user.name=myname
user.mail=me.myself@gmail.com
4

4 回答 4

180

那是一个错字。您不小心在电子邮件user.mail中设置了没有电子邮件。通过在全局配置中设置来修复它user.email

git config --global user.email "you@example.com"
于 2013-02-02T14:07:05.307 回答
10

您正在设置全局 git 选项,但本地结帐可能设置了覆盖。尝试使用 再次设置它们git config --local <setting> <value>。您可以查看.git/config本地结帐中的文件,以查看结帐定义的本地设置。

于 2013-02-02T13:58:46.130 回答
5

你有一个本地的user.name还是user.email覆盖全球的?

git config --list --global | grep user
  user.name=YOUR NAME
  user.email=YOUR@EMAIL
git config --list --local | grep user
  user.name=YOUR NAME
  user.email=

如果是这样,请删除它们

git config --unset --local user.name
git config --unset --local user.email

本地设置是针对每个克隆的,因此您必须取消设置本地user.nameuser.email机器上的每个存储库。

于 2014-05-21T21:36:03.487 回答
0

即使在正确设置配置后我也遇到了这个问题。git config

我的场景是通过主管(在 Linux 中)发出 git 命令。在进一步调试时,主管没有从主文件夹中读取 git 配置。因此,我必须在主管配置中设置环境 HOME 变量,以便它可以正确定位 git 配置。奇怪的是,主管无法仅从主管配置中配置的用户名(/etc/supervisor/conf.d)中找到 git 配置。

于 2020-06-12T21:09:07.467 回答