Git rebase致命错误:不允许空的标识名称。

6

我看到有人问这个问题,解决方法总是更新“用户”设置与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

在此之前,我在一个分支上,获取了主分支(master),并尝试将主分支(master)合并到我的分支中。就像这样:

$ git checkout mybranch
$ git fetch origin
$ git rebase origin/master

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


1
当您使用git-rebase提交时,它将以与原始提交相同的名称重新提交,因此配置选项不会更改。您可以尝试使用git rebase -i并对有问题的提交进行fixupedit以覆盖作者名称。 - rodrigo
在运行了 $ git rebase --abort; $ git rebase -i origin/master 之后,我仍然遇到了相同的问题,然后我将我的条目更改为 edit,结果得到了以下输出:fatal: empty ident name (for <A@B.com>) not allowed - s g
1个回答

0

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


原始答案(2016年):

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

$ git rebase --abort
$ git rebase -i origin/master 

然后我将我的条目更改为编辑

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


请注意,Git 2.11(2016年第四季度)将更加宽容。
请参见提交1e461c4(2016年7月29日),作者为Jeff King (peff)
(由Junio C Hamano -- gitster --合并于提交ae1ae60,2016年9月21日)

rebase-interactive: 删除早期的有效标识检查

自从1b1dce4(教授交互式变基,2007-06-25,Git 1.5.3-rc0)以来,交互式变基一直存在一个预防性检查,在查看任何提交之前,以查看用户是否具有有效的名称/电子邮件组合。

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

但是,当变基实际上不需要生成任何新提交时(例如,没有要选择的提交的快进,或者基础保持不变,我们只是选择相同的提交而不重写任何内容),它会做错事情。
在这种情况下,它可能会抱怨缺少标识,即使不需要标识也可以完成操作。

这似乎只是小题大作,但由于交互式变基是“preserve-merges”变基的基础,因此将“pull.rebase”设置为“preserve”的人甚至不能进行快进拉取而不需要有效的标识,因为我们在意识到快进性质之前就退出了。

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

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


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