'git ls-remote'的输出显示在'git tag -l'中找不到的标签

问题描述:

我按照Pro Git的指导(在此处找到:http://progit.org/book/ch8-2.html)将SVN存储库转换为Git存储库。'git ls-remote'的输出显示在'git tag -l'中找不到的标签

推到我新创建的远程后,我从远程执行了一个克隆。新的克隆没有任何关于我的标签的信息。然后我做了一个'git push - 来自原始的标签'。但是,在克隆中进行'git pull'时,只有少数标签会下降。

从克隆内部,'git ls-remote'显示我所有的标签(和分支)。我删除了清晰的哈希值:

HEAD 
refs/heads/STABLE-1.0 
refs/heads/UNSTABLE-1.0 
refs/heads/master 
refs/tags/RELEASE-0.4 
refs/tags/RELEASE-0.9 
refs/tags/RELEASE-1.0 
refs/tags/STABLE-1.0 
refs/tags/UNSTABLE-1.0 

然而,做一个 'git的标签-l' 只显示:

RELEASE-1.0 
UNSTABLE-1.0 

远程分支似乎追踪罚款。只有我注意到的神器git-svn repo拥有本地和远程分支。这应该不重要,因为我将在克隆中工作,并且一旦我确认所有数据都已迁移,git-svn repo就可以退役。

那么,为什么远程和本地标签不匹配?

+0

好吧,它变得更加复杂。我从新的远端做了第二个克隆,第二个克隆拥有所有正确的标签和分支。我很困惑。 – dicato

尝试git fetch --tags - 从混帐取文档:

为分支头被下载的大多数标签的自动获取,但不点标记的对象从被跟踪的分公司主管可达意志不被这个机制所牵引。该标志允许下载所有标签及其相关对象。

+0

(可能不适合你,但它值得一试......) – johnny

+0

我做了一个'git fetch --tags',它是如何在两个分支中拉动的,但不是所有的分支。现在的问题是我没有办法测试,因为使新的克隆解决了问题......不幸的是。这可能是一个“无法重现的情况”。 – dicato