如何用git獲取覆蓋本地標記? 我想用遠程標籤替換本地標籤。如何用git獲取覆蓋本地標記?
回答
git fetch --tags
會做到這一點。
從docs(在--tags
參數的說明):
爲分支頭被下載的大多數標籤的自動獲取,但不點標記的對象從分支頭被可到達跟蹤將不會被這個機制獲取。該標誌允許下載所有標籤及其相關對象。遠程的默認行爲可以使用remote ..tagopt設置來指定。
標籤不會被覆蓋,因爲它們的意思是排序 - 不可變的。如果你想有一個(現實的)變化的對象,可以使用分支指針或ref。 給你留下:git tag -d tagname ...,然後再次獲取它。
我不同意你的第一個陳述 - 這會扭曲使用VCS的整個觀點,你不覺得嗎? – lightonphiri 2014-01-31 08:46:20
Git不鼓勵重寫(已分享,遠程)歷史記錄。這並不能擊敗VCS的目標 - 這是爲了保持歷史!在大多數情況下,可能會迫使這些事情發生,但可能會導致很多問題。 – 2017-01-05 09:20:48
git fetch --tags --all --prune
這將明確地告訴git的獲取,並在同一時間,除去遙控器上不再存在標籤。
這似乎並未移除本地只存在的標籤。 – 2015-06-10 13:02:00
@MartijnHeemels,GIT中不能從未被傳送的標記,並且從遠程移除的標籤之間進行區分。 – 2017-01-10 18:30:34
首先,與分支不同,git不跟蹤與本地標籤不同的遠程標籤。一旦完成抓取,他們是無法區分的。
- 不更新本地的標籤(即使手冊不告訴)
git fetch --tags
- 不更新本地標籤
git fetch
git fetch --prune
git fetch --prune --force
的標籤更新/改寫如下:
From git:path/name
- [tag update] my_tag -> my_tag
這適用於輕量和附註的標籤,甚至混合。即:註釋標籤可能會被輕量級覆蓋,反之亦然。
我使用Git版本2.7.4
注:這並不會刪除已在遠程 – 2017-03-29 09:05:02
@CarlosHeuberger您的意見建議,你相信有辦法做到這一點刪除標記,但沒有。您確實可以刪除遠程中不存在的所有本地標籤,但也會刪除從不在遠程位置的_local標籤(例如,尚未推送,或標籤僅用於本地用途)。沒有辦法只刪除在remote_上刪除的標籤。 – 2017-03-29 10:44:04
不知道爲什麼你認爲我的評論是暗示 - 我從來沒有寫過,有辦法做到這一點!?!我只是試圖補充你的答案,因爲它沒有說明本地標籤沒有被刪除,「更新本地標籤」可以理解爲也刪除了在遠程刪除的標籤。我認爲這是一個明確的聲明(沒有任何隱藏的建議)......但我的英語可能比我想象的要糟糕。 – 2017-03-29 14:19:17
- 1. Git:如何覆蓋本地更改?
- 2. 用本地(Git)覆蓋主機
- 3. Git,用全局配置覆蓋本地.git配置
- 4. 如何讓git覆蓋未知的本地更改?
- 5. git:如何覆蓋合併的所有本地更改?
- 6. 獲取Git覆蓋本地更改,但保留未跟蹤文件
- 7. 谷歌地圖標記與圖片覆蓋標記
- 8. IMobileServiceSyncHandler - 覆蓋本地版本
- 9. 覆蓋CSS標記以取消當前標記
- 10. 如何獲取QFileDialog以提示覆蓋?
- 11. 如何禁用Jenkins覆蓋gradle-git構建標籤?
- 12. 覆蓋本地化字符串的NSManagedObject獲取器
- 13. 使用鏈接標記覆蓋SVG DOM
- 14. 覆蓋GET方法,使用錨標記
- 15. phpunit - @覆蓋標記不起作用
- 16. 在Google地圖中覆蓋帶地理標記的照片?
- 17. Git Config core.autocrlf覆蓋
- 18. 如何使用publishLocal覆蓋本地穩定版本工件?
- 19. 如何覆蓋Meta標籤?
- 20. 如何使用git svn通過shell腳本獲取SVN的最新標記
- 21. git提交後,覆蓋克隆版本
- 22. 做一個git拉來覆蓋本地的變化
- 23. GIT從主幹/主拉特定的文件覆蓋本地「變」
- 24. Git pull聲明新的本地文件將被覆蓋
- 25. 獲取自定義覆蓋
- 26. 如何從覆蓋文本
- 27. 用本地覆蓋遠程回購
- 28. 在git中獲取提交的標記
- 29. 使用Git,如何從本地存儲庫獲取文件?
- 30. Git是沒有顯示任何衝突,並覆蓋我的本地副本
但我問如何改寫現有的本地標籤,因爲他們錯誤地創建 – linquize 2012-03-12 06:20:37
'混帳取--tags'實際上將更新現有的局部變量,例如,如果遠程標記FOO映射到1234567並且本地標記FOO映射到fedcba9,那麼'git fetch -tags'將用1234567替換FOO。 – torek 2012-03-12 06:35:18
更新:在更新版本的git中,這將不再更新本地標記。你可以用'git fetch'+ refs/tags/*:refs/tags/*''('--force'也可以,但我沒有測試過)來強制更新它們。 –
torek
2014-01-31 19:00:55