3

我正在尝试将(我也遇到与 fetch 相同的问题)拉到远程分支上的特定标签。我正在尝试运行:

 git pull origin v0.0.2.1

其中 v0.0.2.1 是我的标签的名称。我收到此错误消息:

fatal: Couldn't find remote ref v0.0.2.1
fatal: The remote end hung up unexpectedly

如果我将“v0.0.2.1”替换为该标签的哈希或该标签所指的提交的哈希,我会收到相同的错误消息。

我已经检查了远程确实有这个标签和这个提交(实际上我可以在具有这个存储库的另一台机器上成功运行上述命令)。我检查了这两台机器上的 .git/config 文件是否相同。

以下仍然有效:

 git pull origin HEAD

另外,我用

git ls-remote origin

我得到以下(除其他外):

016d51475640e738b24cce2fb4019649ed81fa6b    refs/tags/v0.0.2.1

有谁知道发生了什么?

我找到了一种解决方法: 以下工作:

 git pull origin refs/tags/v0.0.2.1

这适用于我的任务,但我真的很想更多地了解为什么这种方法有效而其他方法无效。如果有人能提供一个很棒的解释。

4

1 回答 1

0

在阅读 1.7.0 到 1.7.9 版本的变更日志时,git我们可以找到几个可能导致解释的条目。在远程端进行 ref-lookups 的方式已经改变(以加快速度)。

这可以解释为什么版本 1.7.0 需要refs/tags/<tagname>获取而 1.7.10 不需要。

于 2013-02-05T22:43:43.483 回答