是的,this-by「this」我的意思是主要問題,「你可以推送一個帶標籤的但不包含分支的提交嗎?」 - 非常好。請注意,git push
通過調用其他一些Git(例如,ssh:// ...或https:// ...通過Internet電話調用另一個Git),並在必要時提交一些提交,以及然後問其他Git:「請設置一個引用名稱來指向某些特定的提交」。
既然你有一個標籤,你可以問其他Git請設置相同的標籤。假設遠程命名origin
(因爲它通常是):
git push origin <tag>
可以拼出全名,refs/tags/tag
,如果需要的話。如果標籤名稱很容易與分支名稱區分開來(例如,標籤是,分支從不以v
開頭),它永遠不會被需要(但它通常可能是明智的)。
如果你沒有標籤,你仍然可以這樣做,但你必須提供其他Git 名稱。要做到這一點,你會做這樣的事情:
git push origin HEAD:refs/heads/newbranch
或:
git push origin HEAD:refs/tags/newtag
這裏棘手的一點是,在推動過程中,你不知道他們是否有一個分支newbranch
或標籤newtag
已經。如果你自己設置了一個標籤,並且一直從它們那裏取得標籤,那麼你可能有一個好主意 - 當然不是保證 - 它們也沒有那個標籤。
需要注意的是,如果他們做有名字,你禮貌地要求他們改變他們的名字指向一些其他承諾,他們可能會拒絕。這是當你看到rejected
錯誤推。你可以命令它們(在refspec中使用git push --force
或+
前綴語法),但這通常不是正確的方法,而且它們仍然可以拒絕(該部分取決於控制其他Git的人)。
這有什麼錯只是檢查出的一個新的分支? –
'git push --tags' –
@JiriKremser:也可以工作,但會推送* all *標籤,這可能比預期的要多。 – torek