即使更改为正确的电子邮件地址,IntelliJ中的Committer电子邮件地址仍不匹配。

34

当我尝试从Linux环境下的IntelliJ Idea将我的git仓库提交推送到gerrit远程仓库时,我会遇到以下错误:

remote: ERROR:  committer email address ***** [K
remote: ERROR:  does not match your user account.[K

即使我已经将设置更改为git和gerrit的正确设置(我可以在控制台上看到这一点:git config -l),它仍然选择旧的“错误”电子邮件。

可能出了什么问题?


可能是Git推送错误:与您的用户帐户不匹配的重复问题。 - Lokkesh
5个回答

113

你需要重新配置你的电子邮件

$ git config user.email <your email>
$ git commit --amend --reset-author

git commit --amend 更新你的最后一次提交


看起来它对一些文件有帮助,但不是所有提交的文件,所以我仍然无法推送。 - Tadas Davidsonas
6
如果你有旧的提交记录,它们没有正确的作者信息,你需要更新这些提交记录。使用git log命令检查哪些提交记录没有正确的作者信息,然后运行git rebase -i <要修改的提交记录>^命令,这样你就可以使用git commit --amend --author "新作者姓名 <email@address.com>"(或--reset-author)来修正作者信息并继续变基。一旦所有提交记录都被修复,你就可以推送(commit)更改。 - Frederic Henri

2
您可以按照以下步骤设置GIT集成的用户名和电子邮件,这将帮助您解决不匹配的问题。
1. 进入已初始化了GIT的项目。 2. 启用隐藏文件夹并找到“.git”文件夹,进入该文件夹。 3. 找到名为“config”的文件,添加下面的代码并保存。
[user]
      name = username
      email = username@domaim.com

请正确输入您的用户名和电子邮件。除非您更改,否则此信息将永久保留。


2

当我尝试从Git向Gerrit推送时,遇到了相同的问题。可能的冲突是因为代码是从git的登录id克隆的,而在尝试推送时,它正在与Gerrit凭据进行交叉验证。由于这两者不同,所以会出现冲突。 通过运行以下两个命令解决了问题:

  • git config --global user.email "email@example.com"
  • git commit --amend --author ="作者名 <'邮箱地址.com>"

2

当我们公司的电子邮件地址更改时,我遇到了同样的错误,但对我来说很容易解决:

#!/bin/sh

git filter-branch --env-filter '

OLD_EMAIL="your-old-email@example.com"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="your-correct-email@example.com"

if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

在git仓库的根目录下运行。
参考文献: https://help.github.com/en/github/using-git/changing-author-info
我还编辑了仓库的.git/config文件,添加了用户配置。
[user]
  name = Your Correct Name
  email = your-correct-email@example.com

那么,
git commit --amend --reset-author
git push

PS:这是在Gerrit服务器上


1

Frédéric Henri提到的那样, 您必须通过 git config user.email 或直接通过编辑您repo文件夹中的 \.git\config 文件来正确配置您的电子邮件。

一个可能被忽视的重要事情是,您必须更新所有包含错误电子邮件的以前提交。Git会抱怨电子邮件模式,但不会提及哪个提交有问题。

您可以使用 git rebasegit reset,然后一旦提交,您就可以成功推送!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接