【问题标题】:git-am not reading configuration correctlygit-am 没有正确读取配置
【发布时间】:2016-06-14 23:02:42
【问题描述】:

git am --continue 似乎没有正确读取我的配置。

git am --continue 
Applying: 
fatal: empty ident name (for <>) notallowed

我尝试按照 git post-receive hook "empty ident name"。最初 user.nameuser.email 在运行 git config --global -l 时是正确的。我遵循了上一个问题中的建议,因此git config --local -l 也会返回完全相同的值。

我觉得奇怪的是(for &lt;&gt;) 出现在错误消息中。从上述问题中的配置来看,remote.origin.url 似乎被忽略了。

否则我的设置完美无缺。这是我第一次遇到这种类型的错误。

有什么建议吗?

【问题讨论】:

    标签: git git-config


    【解决方案1】:

    我认为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 以继续输入正确的值。

    【讨论】:

      【解决方案2】:

      git am 可能忽略名称的另一种情况:Git 在接受补丁电子邮件时,历来拒绝将非常短的字符串作为作者姓名。

      Git 2.33(2021 年第三季度)修复了这个问题。

      参见edef (edef1c)commit 72ee47c(2021 年 5 月 16 日)。
      (由 Junio C Hamano -- gitster -- 合并于 commit 26b25e0,2021 年 6 月 10 日)

      mailinfo: 3 个字符以下的名字不要丢弃

      签字人:edef

      我有时会收到短单名的人提供的补丁,在我的文化环境中,这些补丁并不少见(如“Falsehoods Programmers Believe About Names”中所示)。
      令我沮丧的是,git-am(man) 目前放弃了他们的姓名,并用他们的电子邮件地址替换它们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-07
        • 1970-01-01
        • 2022-07-18
        • 2015-08-22
        • 1970-01-01
        • 2021-02-16
        • 1970-01-01
        相关资源
        最近更新 更多