git - 构建 Git 存储库的良好实践
问题描述
我的团队需要重写一个高度修改过的 Moodle 平台。我们将要面对它的方式是创建几个与moodle本身集成的插件。这些插件也安装在moodle文件夹结构的几个不同文件中。一个非常基本的例子是:
/root
/folder_1
/plugin_1
/plugin_2
/folder_2
/plugin_1
/plugin_2
这引发了构建我们的 git 存储库的问题,因为随着插件数量的增加,部署将变得缓慢和繁琐
我们正在考虑基本上三种方式:
- 独立的 Git 存储库。每个插件都有自己的仓库。由于每个插件都执行特定的工作,不一定彼此相关,因此这将是一种干净的方式。问题是在 gitlab 中有大量实际上彼此相关的项目可能看起来有点难看。此外,部署可能是最慢的,但最容易更新单个插件。
- 每个moodle文件夹的存储库。最容易部署,但仅更新或修复单个插件可能并不那么简单
- 每个文件夹的分支。一个包含所有插件的大型存储库,但有许多包含多个插件的“主”分支。gitlab 上的清理器,因为所有插件都在同一个项目中,在分支选项卡中不是那么干净。同样在不同的插件上工作也需要非常频繁地检查分支。
基本上,我所要求的是处理一个比平时更大、更分散的项目(对我而言)的一些建议。提前致谢。
解决方案
您可能想使用git 子模块
这些是每个插件的独立 git 存储库,但您可以使用主 git 项目来同步它们。
这里有一个指南,描述了 Moodle 3.9+ 的过程
https://docs.moodle.org/311/en/Moodle_development_environment_with_Git_submodules
推荐阅读
- mysql - 我如何查询和显示我邀请的所有人以及他们邀请的人等等?
- ios - iOS 中的消耗品、非续订与续订订阅
- c# - 转到功能替代和结果中的多个打印行
- node.js - 如何使用 TinyPng API NodeJs 上传到 S3 Bucket
- authentication - Apache Livy 上的 LDAP 身份验证
- python - 如何像内置类一样在 __init__ 状态下为您的类禁用 settattr?
- python - Python(tkinter)错误:“CRC校验失败”
- php - 分组更新 laravel 中的数组
- websocket - ahc-ws 无法识别连接何时断开
- gitlab - 禁止从 GitLab 导入文件到 Upsource