使用git flow和git子树

alg*_*lgm 7 git configuration multiple-repositories git-flow git-subtree

我刚刚将一个大的svn repo迁移到git并开始使用gitflow.它的作用就像一个魅力,但现在我正在考虑将这个大型回购分成几个较小的回购.

让我们假设repo目录树如下:

/repo
  - libs
  - apps
    -- app 1
    -- app 2
Run Code Online (Sandbox Code Playgroud)

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

如果我使用git子树进行拆分,我将能够在每个部分单独使用git flow,或者我将不得不全局使用它?

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

Chr*_*her 5

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

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

嵌套存储库,无论它们是使用子树,子模块还是(deity禁止)执行,只是.gitignore按定义使工作流更复杂.命令喜欢git bisectgit log变得有点不太有用; 跟踪历史和错误变得有点困难.新开发人员必须学习更多东西才能开始编码.从个人经验来看:仔细踏上这条道路.如果您的子回购密切相关,您将在一年内回到这里为其他想要破坏项目的人写这个答案,就像一个麻烦的Git版本的Pay It Forward.