这可能是也可能不是一个非常愚蠢的想法,但你如何配置一个git存储库,以便任何拉动完成自动从其他存储库中提取标签?
根据the docs,看起来您可以在远程保留的基础上执行此操作:
远程<名称> .tagopt
将此值设置为--no-tags禁用 从远程< name>获取时自动标记跟随。设置它 to -tags将从远程< name>获取每个标记,即使它们是 远程分支机构无法访问。直接传递这些标志 到git-fetch(1)可以覆盖此设置。请参阅选项--tags和 - 没有git-fetch(1)的标签。
有没有办法让--tags
为每次获取提取默认标志?
答案 0 :(得分:6)
获取标记与提取提交(git fetch
)的效果不同,如“Does “git fetch --tags” include “git fetch”?”中所述。
后者将更新分支头,并实际获取可从这些更新分支到达的标签 前者将获取所有标签,但不会更新分支头。
因此,如果您的标记可以从您正在提取的分支中访问,则默认情况下不必包含--tags
。
考虑到某些回购的大历史(包括linux one),总是希望获取所有标记可能会导致标记列表混乱(标记列表被数百个未被污染 - 需要的标签)。
请注意,启动git 1.9 / 2.0(2014年第一季度),git fetch --tags
将获取所有内容(例如git fetch
)以及标记。请参阅“Does “git fetch --tags
” include “git fetch
”?”。
请求从远程获取所有标签以及正在提取的其他任何标签。
所以你可以试试remote.<name>.tagOpt
config option:
git config (--global) remote.<name>.tagOpt --tags
将其设置为
--tags
将从远程<name>
获取每个标记,即使它们无法从远程分支头获取。
答案 1 :(得分:5)
只需将其添加到遥控器的配置中:
fetch = +refs/tags/*:refs/tags/*
答案 2 :(得分:1)
您可以使用 git config
[1] 进行设置:
git config remote.origin.tagopt --tags
要全局设置它,只需添加 --global
开关:
git config --global remote.origin.tagopt --tags
[1] https://git-scm.com/docs/git-config#Documentation/git-config.txt-remoteltnamegttagOpt