Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git子项目?_Git_Components_Git Submodules - Fatal编程技术网

Git子项目?

Git子项目?,git,components,git-submodules,Git,Components,Git Submodules,我正在开发两个不同的Joomla附加组件,但希望将它们作为独立的git回购,因为它们有不同的开发团队(甚至组织)。但是,我也希望将它们作为一个目录,共享相同的Joomla基(被.gitignore忽略)。由于Joomla的结构,这可能有点复杂,因为它具有以下结构: /joomla/ |--/administrator/ |--|--/components/ |--|--|--/component_a/ |--|--|--/component_b/ |--|--/languag

我正在开发两个不同的Joomla附加组件,但希望将它们作为独立的git回购,因为它们有不同的开发团队(甚至组织)。但是,我也希望将它们作为一个目录,共享相同的Joomla基(被.gitignore忽略)。由于Joomla的结构,这可能有点复杂,因为它具有以下结构:

/joomla/  
|--/administrator/  
|--|--/components/  
|--|--|--/component_a/  
|--|--|--/component_b/  
|--|--/language/  
|--|--|--/en-GB/  
|--|--|--|--/component_a_lang.ini  
|--|--|--|--/component_b_lang.ini  
|--/components/  
|--|--/component_a/  
|--|--/component_b/  
|--/language/  
|--|--/en-GB/  
|--|--|--/component_a_lang.ini  
|--|--|--/component_b_lang.ini  

我知道我可以进行中央回购,为每个子项目使用分支机构,但要小心为正确的子项目使用正确的遥控器。但是有没有一种更简单的方法(子模块?)将所有子项目保存在同一个目录中,这样如果我想复制整个项目进行测试,就不必切换分支和使用复制功能?

通常我建议使用子模块,但在这种情况下,由于项目的结构,它们并不真正合适

子模块放在一个目录中,因此您不能将它们真正分布在整个项目中


一种可能的解决方案是将所有这些文件放在一个目录中,并使用符号链接将它们放在正确的位置。但这有几个缺点。您需要在每个存储库中重新创建所有符号链接,这也可能会给windows用户带来问题。

正如@ike所说,代码在目录中的传播方式使得使用子模块来保存这些代码很麻烦

我想我应该使用单独的分支来进行单独的开发。它们是“特征”,对吗?或多或少因此,将它们视为特征分支可能是相当合适的


如果您的中央存储库由gitolite提供服务,您可以按分支设置对独立用户和组的访问。你可以这样做,每个人都可以阅读每个分支(对测试很重要),但只有受祝福的群体才能推送到他们自己的分支。

我不担心其他用户,因为这是我自己的个人回购,然后我推送到多个回购(例如GitHub)哦。不知道为什么我读到你的问题暗示有多个用户。。。好吧,不管怎样,那就更简单了。这些只是功能分支。