git - 拥有多个 git 遥控器有缺点吗
问题描述
我正在构建一个 Django 网站,其中核心存储在一个存储库中,而单个客户实现/部署在另一个存储库中。核心是最小的网站,需要“可运行”以用于测试目的。这意味着核心看起来像:
Core:
- mainapp
-settings.py
-urls.py
-__init__.py
-wsgi.py
- otherCoreApp
-views.py
-...etc.
- manage.py
实现最初将是核心的克隆,然后设置遥控器以推送/获取到单独的存储库。实现遥控器看起来像:
core https://github.com/core.git (fetch)
core no-push (push)
origin https://github.com/customer1.git (fetch)
origin https://github.com/customer1.git (push)
和文件结构:
Customer1:
- mainapp
-settings.py # Changed from core
-urls.py
-__init__.py
-wsgi.py
- otherCoreApp
-views.py
-...etc.
- pluginApp1
- pluginApp2
- deploymentConfig
- manage.py
然后,这将允许通过运行将核心更新到实现中git pull core master
。核心文件在实现中不会有太大变化,因为主要的扩展方式是通过插件。
如果任何核心部分的开发都保留在核心存储库中,这是一个可行的策略吗?
解决方案
在客户仓库中有额外的文件意味着在那些不在core
. 由于客户 repos 编辑了保存在 中的文件core
,因此我看到了两个用于拉取的选项:
- 直接从 master 拉取,解决合并冲突并创建合并提交。
- 使用语法拉到
core/master
一个新的分支上,将:
master 变基到它上面并从那里解决合并冲突。
不一定是缺点,只是需要考虑的事情。
除此之外,这是一个有趣的多个远程存储库应用程序,大多数人忘记了 git。
推荐阅读
- assembly - 如何使用各种输入迭代 gdb 中的函数,直到获得成功的返回值
- javascript - compareSync 总是假的
- visual-studio - 如何自动将 XAML 属性放在下一行?
- android - Flutter 插件不起作用(在通道 flutter.plugins.io/Y 上找不到方法 X 的实现)
- ios - 关于如何在 Swift 应用程序的所有屏幕上运行相同代码的问题
- node.js - 在 Kubernetes 中设置 React 应用程序和 NodeJS 后端?
- python-3.x - 异常:kivy 中 App.root 错误中的无效实例
- ruby-on-rails - Rails 6 不会自动获取配置更改或新 gem
- vue.js - 在 Vuejs/Laravel 中刷新 JWT 令牌后如何将数据重新发布到服务器
- android - 如何在android中实现可以展开为列表视图的卡片栈视图(类似于iOS群组通知)