同时推git提交&标签
我意识到git push --tags
是一个单独的操作,以旧的git push
。 推送标签应该是有意识的选择,因为您不想意外推送标签。 没关系。 但是有没有办法将两者联系在一起? (除了git push && git push --tags
。)
2015年5月更新
从git 2.4.1开始,你可以做
git config --global push.followTags true
如果设置为true,则默认启用--follow-tags选项。 您可以在推送时通过指定--no-follow-tags来覆盖此配置。
2013年4月更新
自git 1.8.3(2013年4月22日)以来, 您不必再执行2个命令来推送分支,然后推送标签 :
新的“ --follow-tags
”选项告诉“ git push
” 在推出分支时推送相关的注释标签 。
现在您可以尝试在推送新提交时:
git push --follow-tags
这不会推送所有的本地标签,只有通过git push
提交引用的。
Git 2.4.1+(2015年第2季度)将推出push.followTags
选项:请参阅“如何在分支内创建” git push
“include标签?”。
原始答案,2010年9月
核选项将是git push --mirror
,它会将refs/
所有ref都git push --mirror
。
您也可以在当前分支提交时只推送一个标签:
git push origin : v1.0.0
你可以将--tags
选项和一个--tags
结合起来,例如:
git push origin --tags :
(因为--tags
表示: 除了在命令行中明确列出的 --tags
, refs/tags
下的所有ref都被推送 )
你也有这个条目“推送分支和标签与一个单一的”git推“调用”
ZoltánFüzesi在Git邮件列表中发布了一个方便的提示:
我使用.git/config
来解决这个问题:
[remote "origin"]
url = ...
fetch = +refs/heads/*:refs/remotes/origin/*
push = +refs/heads/*
push = +refs/tags/*
用这些行添加git push origin
会上传你所有的分支和标签。 如果你只想上传其中一些,你可以列举它们。
还没有尝试过,但看起来它可能是有用的,直到其他方式推动分支和标签在同一时间被添加到git push。
另一方面,我不介意打字:
$ git push && git push --tags
请注意 ,正如Aseem Kishore所评论的那样
push = +refs/heads/*
将强制推送所有分支 。
这只是我刚才的,所以FYI。
RenéScheibe增加了这个有趣的评论:
--follow-tags
参数具有误导性,因为只考虑.git/refs/tags
下的.git/refs/tags
。
如果运行git gc
,标签将从.git/refs/tags
到.git/packed-refs
。 之后, git push --follow-tags ...
无法按预期工作。