同时推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 ...无法按预期工作。
