2013-02-01 20 views
3

我试图拉(我也得到同样的问题与获取)到远程分支上的特定标签。我试图运行:Git无法找到标签或提交散列的远程参考

git pull origin v0.0.2.1 

其中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 

我得到同样的错误信息:我收到此错误信息。

我检查了远程确实有这个标记和这个提交(事实上,我可以成功地运行上述命令在不同的机器上有这个存储库)。我检查了这两台机器上的.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 

这适用于我的任务,但我真的想更多地了解为什么这个工作和其他办法没有。如果任何人都可以提供一个很棒的解释。

+0

git在两台机器上的相同版本? –

+0

事实上,git版本是不同的!好想法。这个工作(至少在我的机器上)的git版本是1.7.10.4,它在1.7.0.4上不起作用。 – quantka

+0

在黑暗中拍摄 - 你在自己的回购中是否有名为v0.0.2.1的东西? – jthill

回答

0

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

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