提交者电子邮件地址在IntelliJ中不匹配,甚至将其更改为正确的

时间:2015-07-27 11:38:57

标签: git intellij-idea gerrit

当我尝试在IntelliJ构思中将我的提交从git存储库推送到Linux环境中的gerrit远程存储库时,我收到以下错误:

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

即使我将设置更改为git和gerrit的正确设置(我可以在控制台的git config -l处看到),它仍然会选择旧的"错误的"电子邮件。

可能出现什么问题?

5 个答案:

答案 0 :(得分:54)

您需要重新配置电子邮件

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

git commit --amend更新您的上次提交

答案 1 :(得分:1)

您可以如下设置 GIT 集成的用户名和电子邮件。这将帮助您克服不匹配问题。

转到已初始化的项目。

然后启用隐藏的文件夹并找到“ .git”并进入该文件夹。

找到名为“ config”的文件,然后添加以下代码并保存。

[user]
      name = username
      email = username@domaim.com

输入正确的用户名并相应地发送电子邮件。除非您进行更改,否则它将被永久选中。

答案 2 :(得分:0)

作为Frédéric Henri mentions,您必须通过git config user.email或通过编辑repo文件夹中的\.git\config文件直接配置您的电子邮件。

可能不被注意的一件重要事情是您必须更新包含故障电子邮件的所有先前提交。 Git会抱怨电子邮件模式,但它不会提到哪个提交是有问题的。

您可以使用git rebasegit reset然后在提交后即可成功推送!

答案 3 :(得分:0)

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

  • git config --global user.email“ email@example.com”
  • git commit --amend --author =“作者姓名<'email@address.com>”

答案 4 :(得分:0)

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

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.0/umd/react.production.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.0/umd/react-dom.production.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.25/browser-polyfill.min.js"></script>
</head>

<body>
  <div id="app_root"></div>
</body>

在git仓库的根目录中运行。

基于: https://help.github.com/en/github/using-git/changing-author-info

我还编辑了仓库的.git / config来添加用户节:

#!/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

然后

[user]
  name = Your Correct Name
  email = your-correct-email@example.com

PS:这是在Gerrit服务器上