GIT Error:- expected committer email '' but found 'karan@xyz.com'

GIT Error:- expected committer email '' but found 'karan@xyz.com'

Git 推送被拒绝并显示以下错误消息:

expected committer email '' but found 'karan@xyz.com'

我已经试过了:

  1. 在 .gitconfig 文件中设置使用属性。
  2. 尝试git推送同一存储库的不同克隆。
  3. 格式化后一起设置整个系统。

但是 none 起作用了。我还能做些什么来解决它。

这看起来不像是 git 限制,但应该是远程端的某种预接收挂钩(Git 存储库托管 service/server正在推动)

那个钩子似乎解析提交并根据拒绝 karan@xyz.com.
的特定标准检查提交者电子邮件 您应该与远程端管理员联系以了解发生了什么。


OP Karan Singla confirms 这是服务器端的问题:

Issue got resolved. Admin re-created my account and it is working fine now.

我建议打开 git 终端并设置正确的电子邮件。当我遇到同样的问题时,这对我有用。

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

这对我有用

git config --global user.name "Correct Name" 
git config --global user.email name@email.com 
git commit --amend --reset-author
git config --list --show-origin

允许您查看设置的来源文件。 在我的例子中,它是一个不相关的 git 设置文件,以某种方式进入我的便携式 git 安装。

在尝试初始推送到空 Bitbucket Git 存储库(自托管的内部 Bitbucket 实例)时,曾遇到过类似的情况,其中涉及服务器端挂钩,如@VonC 所述。该推送包含我和其他早期同事的提交。

在我的例子中,是 YACC(又一个提交检查器)挂钩抱怨服务器中未知的一些电子邮件地址。这些电子邮件地址在早期项目设置期间被同时离开组织的同事用于提交,他们的帐户已被删除。另见 Atlassian article.

但是,我没有全局停用挂钩(如 Atlassian 文章所建议的那样):

  • 首先使用 empty 设置明确激活了我的 repo 的挂钩(覆盖了我的 repo 的全局挂钩设置),
  • 然后进行了初始推送,
  • 然后再次禁用我的 repo 的插件(插件保持活动状态,但仅限于服务器范围的挂钩设置!)。

这对我有用:

git config --global user.name "Correct Name" 
git config --global user.email name@email.com 
git commit --amend --reset-author

它将显示您可以编辑提交消息的屏幕,编辑后或保持原样,然后按 escape 然后 :wq 并按回车键.

然后:

git push