首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
宝塔
V2EX  ›  git

这种情况应该建分支还是建仓库

  •  
  •   shuang · 179 天前 · 2495 次点击
    这是一个创建于 179 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个 toB 的 SaaS 系统,包含一个通用版,还有若干大客户定制版。定制版是在通用版的基础上开发的,用于满足客户的个性化需求,不同客户对同一功能的需求可能是有冲突的。
    之前是用 svn 管理代码的,每个版本都是一个独立的仓库。有时候某个功能有 bug,所有版本都要修复;定制版上线了一个功能,通用版可能也想要。只能手动复制代码,每个仓库提交一遍。

    现在准备切换到 git,是应该在同一个 repo 下建多个不同的 branch,还是建多个不同的 repo ?

    https://www.v2ex.com/t/404373
    https://www.v2ex.com/t/553604
    相关讨论帖里提到了一些方案
    开关控制:通用平台目前有这样做,但也仅限小的差异
    模块化:结合我司的产品和研发资源来看可能做不到
    22 回复  |  直到 2019-05-24 10:05:54 +08:00
        1
    shuang   179 天前
    @iguoji
    @daodao116
    你们现在是怎么做的呢
        2
    swulling   179 天前 via iPhone
    最好是一套代码库,功能区别用配置文件解决。

    把 diff 全都做成可配置的,如果是两套代码,迟早分裂
        3
    shuang   179 天前
    @swulling
    目前通用版和定制版已经分裂了,应该选哪种方案
        4
    ryanking8215   179 天前
    如果通用版和定制版分别要区分 master 分支,develop 分支,feature 分支,release 分支,hotfix 分支等(这些概念取自 gitflow), 建议使用多仓库方式管理。
        5
    index90   179 天前
    同一个 repo 方便 cherrypick 和 bugfix,不同 repo 就只能人工 copy 代码了。

    如果各自演进,互不相干就分开吧。既然分裂了,分 repo 只是时间问题。
        6
    shuang   179 天前
    @ryanking8215
    想过用 masterA developA masterB developB 这种方式,就是分支看起来有点乱

    @index90
    目前就是在纠结是否要分 repo
    同一 repo 多个分支方便合并代码,但是分支有点乱
    不同 repo 分支好维护,合并代码很麻烦
        7
    mooncakejs   179 天前   ♥ 2
    拆分 module,公共部分单独 repo (可能多个), 不同定制版 submodule 引入 公共的 repo
        8
    hhhsuan   179 天前 via Android
    如果不打算合回来的话,那就分仓库
        9
    annielong   179 天前
    我手头上是分模块,核心通用的做 master,定制部分做分支,反正适合自己用就行
        10
    xfriday   179 天前
    建议做成 N+1 个项目,其中 1 作为公共服务以微服务的方式给其他 N 个项目调用
        11
    chaleaochexist   179 天前
    分支.
    最起码有 cherry-pick.
        12
    pmispig   179 天前
    不同的分支,因为涉及到代码合并,有时候通用版的功能要合并到定制版
        13
    index90   179 天前
    @shuang branch 可以建“文件夹”啊,管理怎么乱呢?
        14
    strongcoder   179 天前
    多分支 不要多 repo 就像上面很多人说 最起码有个 cherry-pick 好用
        15
    dremy   179 天前 via iPhone
    分仓库啊,合并的事情,不是可以通过 pull upstream 来解决么
        16
    Xbluer   179 天前 via iPhone
    git flow 里面有 support 类型的分支。应该是符合你的需求的
        17
    shuang   178 天前
    @dremy 分仓库有哪些优点呢。我对 git 还不是太熟,上游的一部分代码合并到下游,下游的一部分代码合并到上游,这些都能实现吗

    @Xbluer support 只是人为约定的分支名称吧
        18
    shuang   178 天前
    @index90
    siteA/master
    siteA/develop
    siteB/master
    siteB/develop

    是这样吗
        19
    pangliang   178 天前
    对于 git 来说多仓库只是不同的 remote 而已
        20
    zibber   178 天前
    两个 repo 耦合的用 submodule
        21
    xuanbg   178 天前
    分支可以的,但要保留基础分支用于公共部分的开发。公共部分的变更可以合并到各定制版本的发布分支,各发布分支永远不要往公共分支合并。
        22
    shuang   178 天前
    从评论看支持同一仓库建分支的多一些,我也打算这样做。如果后面发现确实应该独立成 repo,操作起来也简单。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3046 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 10:44 · PVG 18:44 · LAX 02:44 · JFK 05:44
    ♥ Do have faith in what you're doing.