2013-06-20 38 views
24

當取出一個單個分支,git fetch包括指向到分支任何標籤:如何讓「git push」在分支中包含標籤?

當的Refspec存儲所取得的結果在遠程跟蹤分支, 指向在這些分支中的標籤自動跟蹤。這個 是通過首先使用給定的s 從遠程獲取並且如果存儲庫具有遠程標記所指向的對象,然後獲取那些缺少的標記,則完成該 。如果另一端 的標籤指向您不感興趣的分支,您將不會獲得它們 。

有什麼辦法可以讓git push的行爲方式一樣嗎?該手冊頁說明如何不推送標籤(默認),所有標籤(--tags)或您在命令行上命名的標籤。它沒有辦法推動所有指向分支的人。

回答

37

你可以試試,用git1.8.3+(2013年5月):

git push --follow-tags 

新的 「--follow-tags」 選項告訴 「git push」 推分支出來的時候,推動相關附註的標籤。

這不會推動所有的標籤,但只有那些從分支(ES)HEAD()你正在推動訪問。

如「Push a tag to a remote repository using Git?」中所述,這隻涉及annotated tags,而不是輕量級標籤。

git tag 1.0(輕量級)不會與--follow-tags推,它會與git push --tags


使用Git 2.4.1+(Q2 2015),該選項可以設置爲默認值。

commit a8bc269通過Dave Olszewski (cxreg)

使其更容易增加新的配置位,然後添加push.followTags配置是默認啓用--follow-tags選項。

的文件將包括:

push.followTags:: 

如果設置爲true啓用 '--follow-tags' 默認選項。您可以通過指定「--no-follow-tags

做全局啓用此設置覆蓋在推的時候這個配置,你可以運行git config --global push.followTags true。它也可以在每個存儲庫的基礎上指定。

+0

另請參閱http://stackoverflow.com/a/3745250/6309 – VonC

+0

這聽起來正是我想要的,謝謝! –

+2

不適用於lightweith標籤,僅適用於帶註釋的標籤 – netawater