使用git subtree配合git flow

8
我刚刚将一个大型的 SVN 仓库迁移到了 Git,并开始使用 Gitflow。它运作得非常好,但现在我正在考虑将这个大仓库拆分成多个较小的仓库。
假设仓库目录树如下:
/repo
  - libs
  - apps
    -- app 1
    -- app 2

我们想将它分成三个仓库,一个包含核心结构(libs和apps目录),另外两个包含apps目录。
如果我使用git subtree进行分割,我是否能够在每个部分中单独使用git flow,还是必须全局使用?
PS:这是我在stackoverflow上的第一个问题,请多关照:)
1个回答

6
我不使用git flow,但我认为答案取决于你的模块化程度。你能否在不部署app1和app2的情况下部署核心结构?你能够独立地部署app1和app2吗?你的开发团队是否足够大且复杂,可以将它们视为独立的工作流程?
如果这些问题的答案是“是”,那么我会认为将它们视为多个项目,每个项目都有独特的流程。然而,如果任何一个问题的答案是“否”,我会避免分裂您的项目。实际上,如果对app1和app2的更改大多数时间也需要对核心存储库进行更改,我会完全避免分裂您的存储库。
嵌套存储库,无论是用subtree、子模块还是(神明禁止)只是.gitignore执行,都会使工作流程变得更加复杂。像git bisect和git log这样的命令变得不那么有用;跟踪历史记录和错误变得更加困难。新开发人员必须学习更多才能开始编码。从个人经验来看:小心谨慎地走这条路。如果您的子存储库紧密相连,您将在一年后再次回到这里,为寻求分裂项目的其他人编写此答案,就像麻烦的git版本的Pay It Forward一样。

1
关于分裂与整体存储库的更多想法:http://programmers.stackexchange.com/a/161324/57052 - Christopher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接