2

在工作中,我们正在寻求改进我们当前的工作方式,并且我们认为 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 的补丁。

谢谢

4

1 回答 1

1

这个小教程可能会帮助您迁移: http: //git-scm.com/book/en/Git-and-Other-Systems-Migrating-to-Git

你想要/需要的东西是否可能对我来说仍然是未知的,但它仍然可能会有所帮助。

我在 Git 官方网站http://git-scm.com/上找到了它。

希望这可以帮助。:) (如果这属于评论,那么对不起,由于某种原因,我实际上无法在主要问题中发表评论。)

于 2012-09-18T18:26:28.800 回答