git rebase 致命:不允许使用空标识名

s g*_*s g 5 git

所以我看到有人问过这个问题,解决办法总是用git config. 我已经这样做了,但仍然出现错误。这是我的输出:

$ git config -l --global | grep user
user.email=A@B.com
user.name=A
$ git config -l --local | grep user
user.email=A@B.com
user.name=A
$ git rebase --continue
Applying: my commit message
fatal: empty ident name (for <A@B.com>) not allowed
Run Code Online (Sandbox Code Playgroud)

在此之前,我在一个分支上,获取了 master,并尝试将 master 变基到我的分支中。像这样的东西:

$ git checkout mybranch
$ git fetch origin
$ git rebase origin/master
Run Code Online (Sandbox Code Playgroud)

远程服务器端是否可能出现问题?(例如我的用户帐户搞砸了)

Von*_*onC 0

2018 年 7 月更新:使用 Git 2.19,将默认git rebase使用。 请参阅“使用空提交消息重新构建 git 历史记录”。--allow-empty-message


原始答案(2016):

运行后仍然遇到同样的问题

$ git rebase --abort
$ git rebase -i origin/master 
Run Code Online (Sandbox Code Playgroud)

然后我更改了我的条目进行编辑

最好在中止变基后,编辑您的配置,然后尝试变基。


请注意,Git 2.11(2016 年第 4 季度)将不再那么挑剔。
请参阅Jeff King的提交 1e461c4(2016 年 7 月 29 日) ( )(由Junio C Hamano 合并 -- --提交 ae1ae60中,2016 年 9 月 21 日)peff
gitster

rebase-interactive:放弃对有效身份的早期检查

自从 1b1dce4 中交互式 rebase 开始(教导 rebase 交互模式,2007-06-25,Git 1.5.3-rc0)以来,在查看任何提交之前,会进行抢先检查,以查看用户是否已有效的姓名/电子邮件组合。

这很方便,因为这意味着我们在开始之前就中止操作(而不是仅仅抱怨我们无法选择特定的提交)。

然而,当变基实际上不需要生成任何新的提交时(例如,没有可供选择的提交的快进,或者基础保持不变,我们只选择相同的提交而不重写),它会做错误的事情任何事物)。
在这种情况下,它可能会抱怨缺乏身份,即使不需要身份来完成操作。

这可能看起来只是挑剔,但因为交互式变基是“”变基的基础,所以将“ ”设置为“”preserve-merges的人在没有有效身份的情况下甚至无法进行快进拉动,因为我们甚至在意识到快进之前就放弃了-前进的性质。pull.rebasepreserve

此提交完全删除了额外的身份检查。这意味着我们依赖生成提交对象的单个命令来抱怨。

然后,用户可以git rebase --continue在设置其身份(或在命令行上一次性提供)后手动提交甚至“”。