将 git 流与 git 子树一起使用



我刚刚将一个大型的svn存储库迁移到git并开始使用gitflow。它就像一个魅力,但现在我正在考虑将那个大仓库分成几个较小的回购。

让我们假设存储库目录树如下:

/repo
  - libs
  - apps
    -- app 1
    -- app 2

我们希望将其拆分为三个存储库,一个具有核心结构(libs 和 apps 目录),另外两个包含 apps 目录。

如果我使用 git

子树像这样拆分,我是否能够在每个部分中单独使用 git flow,或者我必须全局使用它?

PS:这是我在stackoverflow中的第一个问题,请善待:)

我不使用 git flow,但我认为答案取决于你的模块化程度。是否可以在不部署 app1 和 app2 的情况下部署核心结构?是否可以相互独立地部署 app1 和 app2?您的开发团队是否足够庞大和复杂,足以将它们视为独立的工作流程?

如果这些问题的答案是"是",我认为将它们视为多个项目,每个项目都有独特的流程。但是,如果其中任何一个的答案是"否",我会避免破坏您的项目。事实上,如果对 app1 和 app2 的更改在大多数时候也需要对核心存储库进行更改,我会完全避免破坏您的存储库。

嵌套存储库,无论是使用子树、子模块还是(神禁止)根据定义.gitignore执行,都会使工作流更加复杂。像 git bisectgit log 这样的命令变得不那么有用了;跟踪历史记录和错误变得更加困难。新开发人员必须学习更多知识才能开始编码。从个人经验来看:小心走这条路。如果你的子存储库紧密交织在一起,你将在一年后回到这里,为其他想要破坏他们项目的人写这个答案,比如一个陷入困境的 git 版本的 Pay It Forward。

相关内容

  • 没有找到相关文章

最新更新