【问题标题】:Attempt to create tag on commit failed due to unknown field name由于未知字段名称,尝试在提交时创建标签失败
【发布时间】:2020-12-14 08:44:45
【问题描述】:

我希望在我的一个提交上创建新标签,该提交已经使用 Sourcetree 推送到原点。

git --no-optional-locks -c color.branch=false -c color.diff=false -c color.status=false -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree tag -a -m  RC123 3eaa22c1103ae52413ff8db0f31552ff277171c5 

但是,我不断收到以下错误: fatal: unknown field name: 5.6

我也尝试在我的项目中的其他提交上创建标签,并尝试在没有额外参数的情况下从终端创建标签,但仍然得到相同的结果。

我不知道5.6 来自哪里,但我有其他可能包含5.6 字符串的标签。我应该怎么做才能重新获得创建标签的能力?重新克隆存储库会有所帮助吗?

【问题讨论】:

    标签: git tags


    【解决方案1】:

    错误信息肯定很奇怪。

    命令本身有点奇怪,但应该不会产生那个错误。在这里,它被分成几部分,以及每个部分的含义:

    git
    

    当然是调用 Git。

    --no-optional-locks
    

    防止 Git 在运行git status 等只读命令时使用锁。 (用户几乎不应该使用这个标志。)由于你使用的命令不是只读的——创建标签确实需要创建锁——这个标志在这里没有真正的功能。

    (多个-c选项,省略)

    这些会使用命令行设置覆盖每个-c <em>variable=value</em> 设置的任何已配置git config 设置。这里使用的没有一个有用,但也没有一个是有害的,因为git tag 本身不使用任何这些。

    tag
    

    调用 Git 的 tag 子命令,用于标签读取或标签设置。

    -a
    

    指示 Git 创建一个 带注释的标签,它是一个带有消息的标签。

    -m RC123
    

    这提供了消息。 RC123 似乎是一条奇怪的消息。似乎您想要一些其他消息,并使用 RC123 作为 标签 名称,但由于 -m 使用下一个单词作为消息,RC123 成为消息。

    3eaa22c1103ae52413ff8db0f31552ff277171c5
    

    这是新标签的名称。它与哈希 ID 非常相似,因此用作实际标签会很糟糕。

    由于没有提供 hash ID,新标签 3eaa22c1103ae52413ff8db0f31552ff277171c5 将附加到的提交是当前 (HEAD) 提交。如果您运行 git rev-parse HEAD,您将看到新标签 3eaa22c1103ae52413ff8db0f31552ff277171c5 将识别的哈希 ID。

    但是,我不断收到以下错误:fatal: unknown field name: 5.6

    根据某些--format 指令,这是您使用git for-each-refgit tag 命令获得的那种东西,该命令是列出 标记。它不应该由您显示的git tag -a -m RC123 <em>tag-name</em> 命令生成。

    我应该怎么做才能重新获得创建标签的能力?

    从命令行(bash、zsh、DOS/Windows CLI 等),您应该仍然能够创建标签。如果您使用的是一些复杂的 GUI,可能需要以某种方式重新配置它。

    重新克隆存储库会有所帮助吗?

    Git 方面并没有什么根本上的错误。重新克隆是否可能对某些第三方 GUI 有所帮助,谁知道呢?也许用 GUI 标记问题可能会有所帮助(例如,如果它是 ,则使用该标记)。

    【讨论】:

    • 不幸的是,即使我从终端手动运行命令而没有任何附加标志,我也会收到相同的消息。 git tag -m RC123 3eaa22c1103ae52413ff8db0f31552ff277171c5 fatal: unknown field name: 5.6
    • 嗯,这确实很奇怪。 GIT_TRACE=1 git tag -m RC123 3eaa22c1103ae52413ff8db0f31552ff277171c5 是否显示任何有用的信息? (我的并没有,但我的也不会产生这个奇怪的错误。)
    【解决方案2】:

    所以我在我自己的机器上创建标签的所有尝试在我创建的所有克隆上都失败了,但令人惊讶的是我可以在将项目克隆到另一台机器时创建标签。

    这个发现提示问题一定与git机器配置有关。事实上,文件~/.gitconfig 包含以下部分

    [tag]
            sort = -version:5.6
    

    删除这两行解决了问题。

    【讨论】:

      猜你喜欢
      • 2014-11-23
      • 2018-05-18
      • 2021-06-21
      • 1970-01-01
      • 2019-05-19
      • 2017-10-13
      • 2012-06-29
      • 1970-01-01
      • 2018-12-06
      相关资源
      最近更新 更多