在一个项目中,我必须组织项目的多个部分。用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)到“每个零件的一次回购”方法,我不确定这些优势是否值得。 –