Git浅获取新标签

时间:2014-10-28 20:26:49

标签: git shallow-clone

如果我在一个标签上克隆一个最大深度为1的存储库,它就能正常工作并将其拉下来。如果我想为新标记进行1或1深度的提取,它会进行一些处理,但标记永远不会显示在' git标记'之下。如果我提供--tags选项,它会下载整个存储库而不仅仅是新信息。我不介意存储库获取更多历史记录,我只是想避免下载时间。有没有办法在没有从浅克隆存储库中获取所有标记的情况下获取新标记?

git clone --branch 1.0 --depth 1 repositoryPath
git fetch --depth 1 origin tags/1.1 # Does processing but no new tags
git fetch --tags origin tags/1.1 # Pulls down the rest of the repository and adds all tags
git fetch --depth 1 --tags origin tags/1.1 # Same as above

现在,我在文档中注意到了这一点: " - 深度...... 不会提取深化提交的标签。"

这是我遇到的问题吗?除了下载所有标签之外,还有办法吗?

1 个答案:

答案 0 :(得分:9)

您可以使用完整的<refspec>格式:

git fetch --depth 1 origin refs/tags/1.1:refs/tags/1.1

或者,如git-fetch options<refspec>下)

中所述
  

tag <tag> refs/tags/<tag>:refs/tags/<tag> 相同;它   请求获取到给定标记的所有内容。

因此,您的问题的简短答案将是

git fetch --depth 1 origin tag 1.1