我參與的一個研究小組目前將其所有代碼存放在私有SVN存儲庫中。我們希望打開我們的代碼並將其大部分移到Github上。問題是,一些代碼是敏感的,不應該打開,但我們仍然希望它在版本控制下。目前,我們在Github上有開放代碼,而私有代碼仍在私有SVN存儲庫中。有沒有在單個Git存儲庫中完成此操作的好方法?單個Git存儲庫中的公共和私有代碼
4
A
回答
5
對於單個git存儲庫,沒有。你可以做的是使用git submodules,它允許你「結合」倉庫。將您的公共代碼保存在github上,爲私有代碼創建另一個私有託管的git存儲庫,該代碼將公共代碼作爲子模塊引用。公共子模塊中所做的更改可以推送到github,並且github上的更改可以被撤回,但子模塊外部的更改不會暴露給公共社區。儘管代碼樹將被合併到一個單一的根中,但您將不得不在單獨的模塊之間獨立地管理提交,推送和拉取,很多人覺得這些模塊很麻煩並且有問題,所以您應該在廣泛分發之前對工作流進行一些實驗。
0
沒有。
除非你想編寫git鉤子來加密/解密源代碼,否則你將不得不忍受兩個回購。當某人克隆一個git repo時,他們實際上是對它進行克隆的,所以不可能在沒有加密的情況下將其部分私有化。
0
Git的子模塊已經轉移到這裏:http://git-scm.com/book/en/Git-Tools-Submodules
的想法是子模塊是嵌入式的私人git倉庫內公開的Git倉庫。您可以分別管理它們,並且具有嵌入目錄結構內部的私有git存儲庫的優點。
例如:
/private-repository /some (private) directory /public-repository /some (public) directory /some other (private) directory
另一種選擇是使用Git隱窩https://www.agwa.name/projects/git-crypt/
0
沒錯,git的子模塊似乎解決了我們的問題也是如此。我們曾在私人存儲庫的同一分支中開發開源CMS &高級擴展(付費)。現在我們決定將核心開發切換到github公開回購併分拆開發。
這是我們如何去。
- 創建兩個分支的公共存儲庫。大師去發佈,開發去實際發展。
- 我們創造了新的存儲庫,每個擴展我們
- 我們有我們去哪裏我們的發展&添加的所有保費擴展爲子模塊的核心文件的私人倉庫。當然是私人的。分支名稱 - dev。
爲了合併這些變化,我們簡單地從我們的分支開發中挑選出來,就是這樣。在這種情況下,我們爲公共存儲庫提供了一個乾淨的與核心相關的歷史記錄,並且很容易克隆一個存儲庫,然後遞歸地更新子模塊。花費更多時間讓這個同步,無論如何它是非常值得的。
乾杯
相關問題
- 1. 在Git工作流中混合私有和公共存儲庫
- 2. 公共git存儲庫
- 3. Git存儲與私人和公共分支
- 4. git貢獻給公共存儲庫
- 5. 如何構建公共SVN存儲庫的私有分支?
- 6. Python代碼共享和存儲庫?
- 7. 將公共代碼存儲在單獨的文件中
- 8. SVN更新公共代碼存儲庫在我的存儲庫目錄外
- 9. JIRA和私人Git存儲庫整合
- 10. Git存儲庫引用來自另一個git存儲庫的代碼
- 11. 在Heroku中開始帳戶...公共或私人存儲庫?
- 12. 具有公共和私有資源的單個服務的Kong
- 13. 公共存儲庫允許其他人編輯我的代碼?
- 14. 公共存儲庫與gitolite
- 15. javascript中的私有和公共方法
- 16. 公共存儲庫bitbucket上的私人分支
- 17. git - 共享存儲庫sgid
- 18. 創建私有代碼的公共分支,私人向公衆推送更改
- 19. Git中的私有存儲庫 - 沒有推送到Master分支
- 20. 分叉的私人存儲庫,複製並公開存儲庫
- 21. Git:如何組織兩個具有公共代碼的項目
- 22. 同一項目的Git私有和公共回購
- 23. Git和多個存儲庫
- 24. Git - 分支和共享代碼庫
- 25. GitHub:如何將公共存儲庫作爲子目錄分發到私有存儲庫中?
- 26. 使用公共私鑰的Git克隆
- 27. 叉公共倉庫到私人和接受公共提交
- 28. 如何在GitHub上使用公共問題跟蹤器的私有存儲庫?
- 29. symfony私有緩存和公共緩存之間的差異
- 30. 範圍的私有,保護和公共