如果遠程存儲庫中有標籤,我通常會在拉動時自動獲取它們。當我刪除創建的本地標籤(git tag -d <tag-name>
)並拉出時,刪除的標籤將被重新創建。我可以刪除遠程分支機構/標籤(git push <remote-branch/tag-name>:<branch/tag-name>
),但是我怎樣才能通過獲取遠程標籤來檢測本地標籤是否已創建?Git:區分本地和遠程標籤
回答
如果您對運行git pull
時重新創建的這些標籤感到惱火,您可以使用remote.<remote-name>.tagopt配置設置在默認情況下關閉標籤的抓取。例如如果遙控器origin
,那麼你可以做:
git config remote.origin.tagopt --no-tags
更新:解決您的意見,我認爲這是有沒有一個明顯的方式告訴大家,創建一個標籤之間的差異的原因本地和從遠程獲取的一個。標籤也沒有reflog
。所以,我的建議是禁止自動獲取標籤 - 然後您可以將它們自己獲取到不同的名稱空間中。例如,你可以這樣做:
git fetch origin +refs/tags/*:refs/tags/origin/*
...並且可能爲此創建一個別名。然後,當您要抓取標籤時,它們將被命名,例如,refs/tags/origin/tag1
而不是refs/tags/tag1
。
如果你想這個自動發生,你可以改變你的.git/config
列出多個refspecs用於獲取,例如:
[remote "origin"]
url = [email protected]:whatever.git
fetch = +refs/heads/*:refs/remotes/origin/*
fetch = +refs/tags/*:refs/tags/origin/*
...這是suggested in Pro Git。
標記不是「本地」或「遠程」的:它與一個提交相關聯,該提交可以是多個分支的一部分,包括遠程名稱空間中的一部分。上提交的由標籤
git show -s 'TAG_NAME^{commit}' --format='%H'
參考,並做
獲取標記SHA1一個:
git branch -a --contains SHA1
如果你看到
remotes/aRemoteRepoName/aBranch
你知道標記引用提交您已從遠程回購獲取。
由於Chris提到:
git branch -a --contains TAGNAME
將間接引用的標籤,並給出了一氣呵成的答案。
爲什麼不在一個命令中:'git branch -a --contains'TAG_NAME^{commit}'? – 2011-03-31 07:35:45
再想一想,'--contains'會自動取消引用已命名的對象,所以不需要手動指定取消引用。只要'git branch -a --contains TAG_NAME'按預期工作即可。 – 2011-03-31 07:42:15
@Chris:好點,我已經將它包含在答案中。 – VonC 2011-03-31 08:02:44
- 1. Ansible區分本地和遠程連接
- 2. git diff遠程和本地回購
- 3. 爲什麼`git log`在本地和遠程分支之間找不到區別?
- 4. Git標籤和分支版本是?
- 5. git diff比較遠程和本地分支什麼都不做
- 6. Git - 從本地和遠程恢復刪除的分支
- 7. 如何在本地和遠程創建新分支? GIT
- 8. Git只提取「namespaced」遠程標籤?
- 9. 視覺區分本地和遠程終端會話
- 10. 本地和遠程SonarQube Eclipse插件分析有什麼區別?
- 11. Git vs SVN如何區分標籤
- 12. git rebase後,我的本地分支和遠程分支已經發生分歧
- 13. git用遠程分支替換本地分支
- 14. Git - 將更改從本地分支推送到遠程分支
- 15. git合併遠程分支而不必創建本地分支
- 16. git合併本地分支與遠程分支
- 17. Git的 - 地方分支機構,遠程
- 18. 刪除SVN標籤/從git倉庫分支,刪除SVN遠程
- 19. Git:將本地分支與遠程分段和產品進行比較
- 20. git:與遠程同步本地回購
- 21. 從本地到遠程的git克隆
- 22. 重置本地git回購到遠程?
- 23. 發現git中的本地回購和遠程回購之間的區別
- 24. 將本地Git分支重置爲遠程
- 25. Git獲得本地以前不存在的遠程分支?
- 26. 突然不能創建本地/遠程git分支
- 27. 如何在git上更改本地遠程分支
- 28. 添加新的本地目錄到git遠程分支
- 29. 無法將本地分支推送到遠程Git回覆
- 30. 本地和遠程EJB
如果你在一個友好的地方,標籤會被標註,而你從其他地方獲取的標籤通常會有不是你的作者。 – Cascabel 2011-03-31 16:14:35