拥有多个git遥控器是否有弊端

时间:2020-06-29 21:10:53

标签: 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将内核更新到实现中。核心文件在实现中不会有太大变化,因为扩展的主要方式是通过插件。

如果任何核心部分的开发都保留在核心存储库中,这是可行的策略吗?

1 个答案:

答案 0 :(得分:1)

客户存储库中有多余的文件意味着这些存储库中将包含core中没有的提交。由于客户回购协议编辑了core中保存的文件,因此我看到了两种提取方式的选择:

  1. 直接从母版中拉出,解决合并冲突并创建合并提交。
  2. 使用core/master语法从:拉到一个新分支,在其上重新设置master并从那里解决合并冲突。

不一定有缺点,只是要考虑一下。

除此之外,这是多个远程存储库的有趣应用程序,大多数人都忘记了git具有的功能。

相关问题