得到致命:不允许空身份名称'在做#git commit --amend'

时间:2017-04-27 15:31:14

标签: git

我正在做git commit --amend并收到此错误:

  

致命:空身份名称(对于<>)不允许

我发现了很多东西,说我需要设置我的user.emailuser.name,但我有。这是我执行git config --global --list时的结果:

  

core.exludesfile = /家庭/ dzou /的.gitignore
  core.editor = VIM
  user.email=dzou@company.com
  user.name = dzou

这里发生了什么?谢谢!

8 个答案:

答案 0 :(得分:7)

首先按照以下顺序设置全局user.nameuser.email

git config --global user.name "dzou"
git config --global user.email "dzou@company.com"

答案 1 :(得分:5)

我遇到了类似的问题,因为在提交时,user.email的设置正确,但是user.name为空。因此,即使我在配置中设置了用户名,我仍然会遇到相同的“空标识符”错误。

我修复了将--reset-author添加到a​​mend命令的问题(设置正确的user.name之后)

 git commit --amend --reset-author

答案 2 :(得分:3)

本地设置可以轻松覆盖全局设置!这只是发生在我身上-当我使用别人的存储库做了一个非常肮脏的修复程序时。

$ git config --local -e

让我们删除或更改会干扰您提交的本地值!

答案 3 :(得分:2)

我做了一些filter-branch而没有使用引号也遇到了同样的问题。这创建了一个没有任何信息的新用户,因此出现了错误,因此配置您自己的用户名和电子邮件的建议不会有帮助。

我通过编辑配置文件并删除空用户来修复它。你可以运行
$ git config --global -e
并删除没有任何成员字段的[user]行。我不得不重新启动,但之后就可以了。希望有所帮助!

答案 4 :(得分:2)

通过删除 local 配置并使用全局配置修复了该问题

  

$ git config --local -e

现在删除所有本地行并保存空文件

答案 5 :(得分:1)

对于以后出现的任何人,我都遇到类似的问题,但是即使在设置本地和全局配置后,我也遇到相同的错误。

我的问题是我在〜/ .bashrc中拥有了这个

export GIT_AUTHOR_NAME=""
export GIT_AUTHOR_EMAIL=""

这些变量将覆盖其他设置。我忘记了我这样做是完全是为了阻止人们尝试从生产服务器进行提交:)

棘手的是,我在该服务器上安装了git 1.7.1,并且env变量不显示

git config --list

解决方法是为那些变量设置值,这些变量仅对会话有效(正是我所需要的)。

export GIT_AUTHOR_NAME="RaiderOfTheLostBBS"
export GIT_AUTHOR_EMAIL="email@example.com"

答案 6 :(得分:0)

  1. 如果您在 Windows 操作系统上使用 git,请告诉我。 Windows 需要 .Net Framework 4.8 才能运行 git。所以先安装它

  2. 克隆您的 git 存储库:git clone https://github.com/userName/yourRepo.git

  3. 打开您的存储库文件夹

  4. 现在运行 git-bash

  5. 输入以下命令 git config --global user.name "Your User name On Github"

    git config --global user.email "Your Registered Email on github"

    git config --global user.password "Your Github password"

答案 7 :(得分:-1)

我遇到了问题,因为我(ssh-)在另一台机器上克隆了回购协议,但是使用了相同的用户名和电子邮件。最后再次克隆它,将新的/更改的文件复制到新的克隆中,并且可以正常工作。 git config没有帮助。