在一個項目中,我必須組織項目的多個部分。用php編寫的web應用程序,用nodejs編寫的api服務器以及android和ios應用程序。將它們分成多個回購區是不錯的主意?或單獨的文件夾在一個單一的git回購?如何在git repo中組織項目的不同部分?
4
A
回答
2
如果您打算重新使用這些單獨的「項目」,您應該使用git子模塊。但是,如果你不這樣做,我會簡單地在不同的文件夾中將它們分開在一個獨特的git下。
git子模塊非常適合可以「克隆」並在任何其他(更大)項目中保持最新狀態的項目。
請注意,它在處理子模塊時會添加一些複雜層。
3
如果單個模塊相當獨立,您可以使用git submodule來混合這兩種方法。你最終會得到一個單獨的文件夾/ repo,其中每個子項目都有一個文件夾。每個子項目都是獨立的存儲庫,可以這樣使用,但您可以從根存儲庫跟蹤每個項目的版本,並向子模塊發出「聯合」命令,如
git submodule update
或 「遞歸」 命令,在
git submodule foreach make
找到documentation和某種tutorial在線。
這是建立包含幾個子模塊的存儲庫(NCS,...,test_network)
git init
git submodule add ssh://.../ncs
...
git submodule add ssh://.../test_network
vim Makefile #write the Makefile for the whole project
git add Makefile
git commit -i -m "Makefile added"
git submodule foreach autoreconf -i
git submodule foreach ./configure
make test
0
我會保持這些作爲單獨的項目的例子。如果你需要結合git倉庫,你總是可以使用git submodules。
0
我試過一個項目,包括前端的網頁應用程序,後端一個,一個Chrome擴展,一個網站和一些共享庫的「一個回購每件」方法。這主要是由於這些庫是在GitHub上開源的,而其餘的代碼是專有的。
雖然這顯然對於開源庫偉大的工作,它變成了創造私人回購幾個問題:
- 更新較慢。 WebStorm(可能還有其他IDE)必須檢查這個額外的回購(大約10回購大約需要30秒來檢查什麼時候同步VCS,並且沒有更新)。我最終創建了在當前項目(前端/後端/ etc)依賴的每個目錄中創建
git pull
的shell腳本 - 恢復到相互依賴的項目部分之間的給定提交(例如,之前API更改)並不那麼容易 - 您需要檢查不同repos中的不同提交,或者始終使用標籤。查看提交時間戳是最容易的。
我發現此模式的唯一不錯的效果:即需要不同的權限
- 回購,例如一個開放源碼組件與專有回購協議顯然應該是分開的。然而,一個私人回購可以持有私人項目的多個部分(例如,前端和後端可以是同一個倉庫中的目錄)
- 在GitHub上有獨立的問題跟蹤器意味着您不必通過「In ...,發生這種情況」來啓動每個問題。
相關問題
- 1. 雲部署的Git repo組織
- 2. 如何組織用戶運行項目的不同部分?
- 3. 將github上的git repo複製/分叉到同一組織中
- 4. 如何在git存儲庫中組織我的項目?
- 5. 如何在git中組織一個python項目?
- 6. 如何在幾個GIT倉庫中組織大型項目?
- 7. GIT中的目錄組織
- 8. 使用Maven + Git的項目組織
- 9. 如何最好地組織GIT中的多個項目?
- 10. 如何將git repo添加到項目的工作目錄中
- 11. 如何在SonarQube中組織項目?
- 12. 如何在eclipse中組織webdriver項目?
- 13. 如何在TFS中組織項目?
- 14. Git中組織外部利布斯多個項目
- 15. 如何組織項目?
- 16. 如何在構建種子項目時組織git倉庫
- 17. 如何在Git服務器上組織項目?
- 18. 在QGraphicsScene中組織項目
- 19. 在TFS中組織項目
- 20. MEAN項目 - 組織
- 21. 如何組織SVN的項目目錄?
- 22. 如何在GitHub中組織和分類小型項目?
- 23. Git:如何組織兩個具有公共代碼的項目
- 24. 從GIT repo創建的Cordova/Ionic2項目
- 25. 如何讓兩個git subdirs在不同的項目中同步?
- 26. 如何使用Git存儲庫組織跨平臺項目?
- 27. 如何爲項目組織git存儲庫?
- 28. 用於部署和/或分發的多個Python項目組織
- 29. 兩個Git倉庫的項目部分 - 如何忽略不同的文件?
- 30. xcode項目組織
有一些嚴重的[缺點](http://stackoverflow.com/questions/17875040/how-to-organize-different-parts-of-project-in-git-repo/32237710#32237710)到「每個零件的一次回購」方法,我不確定這些優勢是否值得。 –