为什么Git在配置后甚至不允许我提交?

时间:2013-02-02 13:47:38

标签: git github commit config

这个问题似乎是重复的,但事实并非如此。只是略有不同,不断重复。 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 个答案:

答案 0 :(得分:150)

这是一个错字。您无意中将user.mail设为 e 。通过使用

在全局配置中设置user.email来修复它
git config --global user.email "you@example.com"

答案 1 :(得分:10)

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

答案 2 :(得分:3)

您是否拥有覆盖全球的本地user.nameuser.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

答案 3 :(得分:0)

即使正确设置了配置,我仍然遇到此问题。 git config

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