为什么Git在configuration之后不允许我提交?

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

这是一个错字。 你意外地设置了user.mail没有e 。 通过在全局configuration中设置user.email来修复它

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

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

你有一个本地的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.email机上的每个回购user.email取消本地user.nameuser.email