[英]Why are git private tags and associated private code uploaded to public repositories?
我維護了一個git樹,其中包含許多分支,有些是私有的,有些是推送到bitbucket上的公共存儲庫的。 我最近無意間發現,如果我在私有分支中標記提交,則使用
git push --tags
導致將私有分支中的所有提交和私有標簽作為懸掛標簽上載。 這暴露了很多從未公開的私人代碼,導致我刪除了整個存儲庫並重新上傳它,而沒有令人討厭的標簽來嘗試解決此問題。
我在一個單獨的私有分支中創建了一個僅包含2個公共提交和一個私有提交的示例git樹,在此處顯示了推送標簽如何將私有標簽和相關的私有提交推送: https : //bitbucket.org/ckolivas/testtag/commits/所有 PU1和PU2都是在主分支上創建的標簽,而PR1是在私有分支上創建的標簽。
這是否是要推送標簽的正確行為,即使它們不是主服務器的一部分,也要使其推送所有標簽? 對我來說似乎違反直覺。
這是否是要推送標簽的正確行為,即使它們不是主服務器的一部分,也要使其推送所有標簽? 對我來說似乎違反直覺。
標簽與master或任何其他分支無關。 標簽只是對提交的引用,實際上,您可以使用“ push --tags”將其“加載”到遠程
“私人”分支是本地分支,不會發布到遠程存儲庫。
“公共”分支是遠程存儲庫中的分支。
如果使用標簽,則首選帶注釋的標簽git tag -a
而不是“常規標簽” git tag
。 它將創建帶有與提交相同信息的帶注釋的標記,以便您以后可以查看它。
從git push文檔中:
git push --follow-tags
您還可以使用git push --follow-tags
推送所有標簽
-關注標簽
推送所有不帶此選項將被推送的ref,並推送帶注釋的標簽到遠程丟失的ref / tag中,但指向被推送的ref可以到達的commit-ish。
也可以使用配置變量
push.followTags
進行指定。
有關更多信息,請參見git-config中的push.followTags
。-標簽
除了在命令行上明確列出的refspecs之外,還會推送
refs/tags
下的所有refs。
這是正確的行為,因為您正在上傳all
標簽。 如果您只想上傳與某些“公共”分支關聯的標簽,則可以明確列出這些標簽,例如
git push some_remote some_public_tag
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.