Git 子项目?

标签 git components git-submodules

我正在开发几个不同的 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  

我知道我可以创建一个中央存储库并为每个子项目使用分支,并且在为正确的子项目使用正确的 Remote 时要小心。但是有没有更简单的方法(子模块?)将所有子项目保存在同一个目录中,这样如果我想复制整个项目进行测试,我就不必切换分支并使用 copy-pasta 了?

最佳答案

通常我会推荐使用子模块,但在这种情况下,由于项目的结构,它们并不合适。

一个子模块放在一个目录中,所以你不能真正将它们分散到整个项目中。

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

关于Git 子项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5911113/

相关文章:

git - 有适用于 Windows 的轻量级 git 客户端吗?

git - 任何使用浏览器内代码编辑器(如 Google Code)托管的项目?

variables - 在 joomla 组件中传递 get 变量

git - 下载 tarball 的 git 子模块

git - 无法跟踪 Git 子模块中的文件

git - git中的附加子模块

git - 如何在github中存储.env文件?

arrays - Angular 2 组件中的 Array.filter()

apache-flex - 使 Flex 列表滚动到底部

windows - 如果我的存储库在 Windows 机器上,我可以让 git 发送一封带有 post-receive-email 脚本的电子邮件吗?