2013-10-16 55 views
11

我通常运行:“git push”和“git push --tags”在同一命令中?

git push 
git tag v4.7 
git push --tags 

两个第一和第三业务连接到服务器,浪费时间。
我想通过只推一次来使速度更快。什么命令可以实现这个目标?
这是在bash script,需要在任何分支运行良好,而不仅仅是master

阅读手册,我不认为git push all是解决方案:

--all:除了命名每个裁判推,规定在裁判/头/推所有裁判。

--tags:除了在命令行中明确列出的refspecs之外,refs/tags下的所有ref都被推送。

+0

怎么样'混帐推--tags HEAD'? –

+0

HEAD表示当前分支,所以我可以将它用作“明确列出的”refspec!你能否把这个作为答案发布,以便我能接受它? –

回答

11

最接近的选项可能是:将没有这个选项被推向

git push --follow-tags 

推所有的裁判,而且在裁判/标签推注释标签这是从遥控器丢失,但指向 犯规,可以从被推送的裁判可达。

+0

这听起来像是一个有效的解决方案......它与'git push --tags HEAD'有什么不同? –

+0

@NicolasRaoul像'git push'一样,它也会推送其他跟踪分支(取决于'push.default'配置),而不仅仅是'HEAD',并且它将推送分支上的标签,而不是所有标签。 – Kornel

+0

我不认为这是正确的。 AFAIK'git push'仅推送当前分支。 –

-4

您可以使用git push origin <your branch name>

+0

这不会回答问题,因为它不会推送标签。 –

4

--tags的文档,你可以指定其他refspecs被推动。

所以,你可以简单地使用

git push --tags origin HEAD 
+2

这不似乎工作:“致命的:'头'似乎不是一个混帐存储库”。虽然'git push origin HEAD --tags'起作用。 –

+0

@MariusGedminas:谢谢你的提醒。固定。 –

1

您可以创建别名有此命令的快速访问:

git config --global alias.p '!git push && git push --tags' 

git config --global alias.pa '!git push --all && git push --tags' 

现在你可以不喜欢它这个:

git tag v4.7 
git p 

你可以阅读更多有关别名here

+0

有趣的提示,但这并不减少对服务器的请求数量,对吧?正如问题中解释的那样,这是一个bash脚本,所以我的问题不是输入较少。 –