git am --continue
似乎没有正确读取我的配置。
git am --continue
Applying:
fatal: empty ident name (for <>) notallowed
我尝试过遵循建议
git post-receive hook "empty ident name"。运行user.name
时,最初user.email
和git config --global -l
是正确的。我按照上一个问题中的建议进行操作,因此git config --local -l
也会返回完全相同的值。
我发现奇怪的是(for <>)
在错误消息中。从上述问题的配置来看,remote.origin.url
似乎被忽略了。
否则我的设置完美无瑕。这是我第一次遇到这种类型的错误。
有什么建议吗?
答案 0 :(得分:2)
我认为事实git am
忽略了全局配置值是设计的 - 提交应该有补丁作者的名称/电子邮件,而不是你的。
相反,在继续时,git am
会从文件.git/rebase-apply/author-script
中读取此信息,该文件应在git mailinfo
之前填充正确的值,然后停止:
GIT_AUTHOR_NAME='Committer'
GIT_AUTHOR_EMAIL='email@example.org'
GIT_AUTHOR_DATE='Thu, 28 Apr 2016 11:38:59 -0700'
很可能,应用的.patch
- 文件格式不正确(即缺少From:
和Date:
行),因此git mailinfo
无法弄清楚这些价值观。
您可以手动输入,然后运行git am --continue
以继续使用正确的值。
答案 1 :(得分:0)
git am 可能会忽略名称的另一种情况:Git 过去在接受补丁电子邮件时拒绝将非常短的字符串作为作者姓名。
Git 2.33(2021 年第三季度)修复了这个问题。
请参阅 commit 72ee47c 的 edef (edef1c
)(2021 年 5 月 16 日)。
(2021 年 6 月 10 日于 Junio C Hamano -- gitster
-- 被 commit 26b25e0 合并)
mailinfo
:不要丢弃 3 个字符以下的名称签字人:edef
<块引用>有时我会收到一些名字很短的人的补丁,在我的文化环境中,这些补丁并不少见(如“Falsehoods Programmers Believe About Names”中所示)。
令我沮丧的是,git-am
(man) 目前放弃了他们的名字,并用他们的电子邮件地址代替。