拥有多个 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中的存储库中将有提交。 由于客户存储库编辑保存在core中的文件,因此我看到了两个选项:

  1. 直接从主服务器拉取,解决合并冲突并创建合并提交。
  2. 使用:语法从core/master拉到一个新的分支上,将 master 重新定位到该分支上并从那里解决合并冲突。

不一定是缺点,只是需要考虑一些事情。

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

相关内容

  • 没有找到相关文章

最新更新