2013-10-16 51 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腳本,所以我的問題不是輸入較少。 –