git - 由于未知字段名称,尝试在提交时创建标签失败
问题描述
我希望在我的一个提交上创建新标签,该提交已经使用 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
当然,调用 Git。
--no-optional-locks
防止 Git 在运行只读命令(如git status
. (用户几乎不应该使用这个标志。)因为你使用的命令不是只读的——创建一个标签确实需要创建锁——这个标志在这里没有真正的功能。
(多
-c
选,省略)
这些使用命令行设置覆盖git config
每个设置的任何配置设置。这里使用的没有一个是有用的,但也没有一个是有害的,因为它本身不使用任何这些。-c variable=value
git tag
tag
调用 Git 的tag
子命令,用于标签读取或标签设置。
-a
指示 Git 创建一个带注释的标签,其中包含一条消息。
-m RC123
这提供了消息。 RC123
似乎是一个奇怪的消息。看起来您可能想要一些其他消息,并RC123
用作标签名称,但由于-m
使用下一个单词作为消息,RC123
因此成为消息。
3eaa22c1103ae52413ff8db0f31552ff277171c5
这是新标签的名称。它与哈希 ID 非常相似,因此用作实际标签会很糟糕。
由于没有提供哈希 ID,因此新标签3eaa22c1103ae52413ff8db0f31552ff277171c5
将附加到的提交是当前 ( HEAD
) 提交。如果您运行git rev-parse HEAD
,您将看到新标签3eaa22c1103ae52413ff8db0f31552ff277171c5
将识别的哈希 ID。
但是,我不断收到以下错误:
fatal: unknown field name: 5.6
根据某些指令,这是您使用列出git for-each-ref
标签的orgit tag
命令所获得的那种东西。它不应该由您显示的命令产生。--format
git tag -a -m RC123 tag-name
我应该怎么做才能重新获得创建标签的能力?
从命令行(bash、zsh、DOS/Windows CLI 等),您应该仍然能够创建标签。如果您正在使用一些复杂的 GUI,可能需要以某种方式重新配置它。
重新克隆存储库会有所帮助吗?
从根本上来说, Git并没有什么错误。重新克隆是否可能对某些第三方 GUI 有所帮助,谁知道呢?也许用 GUI 标记问题可能会有所帮助(例如,如果它是atlassian-sourcetree,请使用该标记)。
推荐阅读
- c++ - 这段代码有什么错误:C++ 检查数字是偶数还是奇数
- python - plt.close('all') 没有关闭图像,因此下一条语句没有被执行
- python-3.x - 给定两个音频文件,其中一个是另一个的片段,是否有一种 python 方法来查找片段何时在原始文件中重播?
- c++ - 如何使用 SetWindowsHookEx 捕获 Chrome 中的特定小部件?
- eclipse-plugin - javafx 11 找不到调用它的主类
- node.js - Node.js 控制台“UI”和 I/O 控制
- php - 一会儿比较和$i++
- c++ - 如何在 C++ 中声明固定大小长度的字符串?
- reactjs - 如何使用 react-moment 库格式化日期时间
- bison - 如何在 yacc 中使用递归来打印 AST?