推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