如果我在一个标签上克隆一个最大深度为1的存储库,它就能正常工作并向下拉.如果我想为新标记执行带有或不带深度1的提取,它会进行一些处理,但标记永远不会显示在"git tag"下.如果我提供--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
Run Code Online (Sandbox Code Playgroud)
现在,我在文档中注意到了这一点:" - 深度...不会提取深化提交的标签."
这是我遇到的问题吗?除了下载所有标签之外,还有办法吗?
您可以使用完整<refspec>格式:
git fetch --depth 1 origin refs/tags/1.1:refs/tags/1.1
Run Code Online (Sandbox Code Playgroud)
或者,如git-fetch选项(下<refspec>)中所指定:
tag <tag>意思是一样的refs/tags/<tag>:refs/tags/<tag>; 它请求获取给定标记的所有内容.
所以对你的问题的简短回答是
git fetch --depth 1 origin tag 1.1
Run Code Online (Sandbox Code Playgroud)