在工作中,我们正在寻求改进我们当前的工作方式,并且我们认为 Git 可能能够解决我们的问题。
我们当前的 repo 托管在 SVN 中,如下所示:
MAIN ---trunk
---bugfix
CUSTOMER1
---trunk
---bugfix
CUSTOMER2
---trunk
---bugfix
现在笑话来了 :) Customer1 和 2 基本上基于 MAIN,但是主项目需要自定义,他们决定将它们分成 2 个分支并重新编写 MAIN 的几个共享代码。
已经到了不能将 MAIN 合并到 customer1 或 2 中的地步。因为很多代码已被覆盖。当我们应用新功能或错误修复时,我们必须手动编辑 MAIN、customer1、customer2 的代码,甚至在某些情况下错误修复会单独分支。我们花费 30 分钟编写修复程序,并花费 30 分钟将其复制粘贴到其他分支。
是的,我们知道这是一种完全错误的工作方式,但是我们想改变它。
我有一些不错的 git 知识,并且我知道其他几个项目都是这样工作的,例如 @ chiliproject。基本上我们可能想要这样的设置:
MAIN --- develop
--- feature
--- master
--- bugfix
\
customer1
--- ...
\
customer2
总共可能有 3 个存储库,其中客户 1 和 2 基于 MAIN。当我们将新代码应用到 MAIN 时,我们可以简单地将其拉入 customer1 和 customer2。有人可以就我们如何解决这个问题提出建议吗?
我还尝试将远程仓库添加到customer1,即远程beeing MAIN。当我获取最新版本时,我会从 MAIN 中获取所有差异。显然,由于目前的代码非常不同,我不想合并它。但是,我想引入未来的版本 1,例如,它只包含 hello.php 的补丁。
谢谢