所以我看到有人问过这个问题,解决办法总是用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)
远程服务器端是否可能出现问题?(例如我的用户帐户搞砸了)
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在设置其身份(或在命令行上一次性提供)后手动提交甚至“”。