如何在git回购中组织项目的不同部分?
在一个项目中,我必须组织项目的多个部分。用php编写的web应用程序,用nodejs编写的api服务器,以及android和ios应用程序。将这些分为多个回购协议是个好主意吗?或者在一个git repo中分离文件夹?如果单个模块相当独立,您可以使用git子模块混合这两种方法。最终会得到一个文件夹/repo,其中每个子项目都有一个文件夹。每个子项目都是一个单独的存储库,可以这样使用,但您将能够从根存储库跟踪每个项目的版本,并向子模块发出“联合”命令,如中所示如何在git回购中组织项目的不同部分?,git,Git,在一个项目中,我必须组织项目的多个部分。用php编写的web应用程序,用nodejs编写的api服务器,以及android和ios应用程序。将这些分为多个回购协议是个好主意吗?或者在一个git repo中分离文件夹?如果单个模块相当独立,您可以使用git子模块混合这两种方法。最终会得到一个文件夹/repo,其中每个子项目都有一个文件夹。每个子项目都是一个单独的存储库,可以这样使用,但您将能够从根存储库跟踪每个项目的版本,并向子模块发出“联合”命令,如中所示 git submodule updat
git submodule update
或“递归”命令,如
git submodule foreach make
你可以在网上找到一些新的信息
下面是一个设置包含多个子模块(ncs,…,test_network)的存储库的示例
我会把它们作为单独的项目。如果您需要合并git回购,您可以随时使用。如果您计划重复使用这些单独的“项目”,您应该使用git子模块。但是,如果您不这样做,我会简单地将它们分离到一个唯一git下的不同文件夹中 git子模块非常适合于可以“克隆”并在任何其他(更大的)项目中保持最新的项目 请注意,在处理子模块时,它增加了一些复杂性层。对于一个由前端web应用程序、后端web应用程序、Chrome扩展程序、网站和一些共享库组成的项目,我尝试了“每个部分一个回购”的方法。这主要是因为这些库在GitHub上是开源的,而其余的代码是专有的 虽然这显然对开源图书馆非常有效,但却给私人回购带来了几个问题:
- 需要不同权限的回购协议,例如开源组件和专有回购协议,显然应该分开。但是,一个私有回购协议可以包含项目的多个私有部分(例如,前端和后端可以是同一回购协议中的目录)
- 在GitHub上有单独的问题跟踪程序意味着您不必在每个问题开始时都使用“In…,这会发生”
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