推git提交&标签同时

我意识到git push --tags是一个单独的操作,以旧的git push 。 推送标签应该是一个有意识的select,因为你不想不小心推一个。 没关系。 但是有什么办法可以一起推动呢? (除了git push && git push --tags 。)

2015年5月更新

从git 2.4.1开始 ,你可以做到

 git config --global push.followTags true 

如果设置为true,则默认启用–follow-tags选项。 您可以在推送时通过指定–no-follow-tags覆盖此configuration。

2013年4月更新

从git 1.8.3(2013年4月22日)开始 , 你不必再用2个命令来推送分支,然后推送标签

新的“ --follow-tags ”选项告诉“ git push推送分支时推送相关的注释标签

现在您可以尝试推送新提交时:

 git push --follow-tags 

这不会推送所有的本地标签,只有通过git push提交的提交引用。

Git 2.4.1+(Q2 2015)将引入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 refs/tags下的refs/tags都被推送


你也有这个条目“ 推动分支和标签与一个单一的”混帐推“调用 ”

一个方便的提示只是发布到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推。
另一方面,我不介意打字:

 $ 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 ...不能像预期的那样工作了。

这适用于我:

 git push --tags origin master