我的git储存库出现了一个奇怪的问题。它突然“停止”使用标签。我可以创建标签,也可以列出标签。我什至可以使用git checkout $tag
或git logs $tag
。但是,当使用git describe --exact-match
时,不再检测到标签了吗?这目前中断了我的工作流程,因为master上的标记提交似乎未标记为git本身?一周前,它运行良好。
$ git checkout master
$ git tag my-test-tag
$ git describe --exact-match
fatal: no tag exactly matches '4b2aa1dcf70eaf61640e6a983df82e1ffe3a5812'
[我已经尝试运行git fsck --full
,它仅修复了一些悬空的提交,对我来说看起来不错(因为我在基础上做了很多调整)。
另一个有趣的事情:工具gitg
没有显示这些“新”提交的任何历史记录。当“旧”提交时,一切都按预期工作。
有人知道这是怎么回事吗?
在3台机器上测试,全部运行git版本2.17.1。
git tag
默认情况下会创建一个非注释标签;使用-a
进行更改。
git describe
默认情况下仅引用带注释的标签;使用--all
或--tags
进行更改。