在做'git commit --amend'时,'致命:不允许空身份名称'

Di *_*Zou 11 git

我正在做一个git commit --amend,我得到这个错误:

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

我发现了一堆东西说我需要设置我的user.emailuser.name,但我有.这是我做的时候的结果git config --global --list:

core.exludesfile =/home/dzou/.gitignore
core.editor = vim
user.email=dzou@company.com
user.name = dzou

这里发生了什么?谢谢!

dip*_*pas 15

按以下顺序设置全局user.nameuser.email第一个.

$ git config --global user.name "dzou"
$ git config --global user.email "dzou@company.com"
Run Code Online (Sandbox Code Playgroud)

  • 我之前已经做过,但它没有用.我刚刚再做一次,它现在有效.发生了什么?谢谢! (3认同)
  • @dippas,我这样做了,但仍然收到问题中描述的错误。有任何想法吗? (3认同)
  • 因此,我查看了我的历史记录,发现我以前运行的命令在我的姓名/电子邮件周围没有引号,或者在我的姓名/电子邮件周围没有引号。这可能就是为什么它不起作用的原因。 (2认同)

小智 8

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

我修复了它,将其添加--reset-author到amend命令中(设置正确后user.name

$ git commit --amend --reset-author
Run Code Online (Sandbox Code Playgroud)


Rai*_*BBS 8

对于后来的人来说,我遇到了类似的问题,但即使在设置本地和全局配置之后,我也遇到了相同的错误。

我的问题是我在 ~/.bashrc 中有这个

export GIT_AUTHOR_NAME=""
export GIT_AUTHOR_EMAIL=""
Run Code Online (Sandbox Code Playgroud)

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

棘手的一点是我在该服务器上有 git 1.7.1 并且环境变量没有显示

git config --list
Run Code Online (Sandbox Code Playgroud)

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

export GIT_AUTHOR_NAME="RaiderOfTheLostBBS"
export GIT_AUTHOR_EMAIL="email@example.com"
Run Code Online (Sandbox Code Playgroud)


小智 5

通过删除本地配置并使用全局配置来修复它

$ git config --local -e
Run Code Online (Sandbox Code Playgroud)

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


Rau*_*ann 5

本地设置可以轻松覆盖全局设置!刚刚这件事发生在我身上 -而我使用别人的 repo 做了一个非常肮脏的修复

$ git config --local -e

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