V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
coolair
V2EX  ›  问与答

Git 管理项目的时候,如何做到功能区分?

  •  
  •   coolair · 2019-11-01 17:35:42 +08:00 · 989 次点击
    这是一个创建于 1885 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前做法是:
    代码仓库 master 为基础功能
    开了个分支 branch_a 在 master 的基础上加上了功能 a
    开了个分支 branch_b 在 master 的基础上加了功能 b
    开了个分支 branch_c 的基础上加了功能 c

    比如现在想要 a、b 功能的产品,那就新增一个分支 d 合并 a 和 b,导出代码,然后删除分支 d。
    想要功能 b、c 的产品,也同理。

    这种操作有个问题就是,如果 master 基础功能有问题,我得在 master 上改了以后分别合并到 a、b、c 上去,很麻烦。

    我这样操作对吗?

    或者我还有另一个想法,就是把所用功能都做在一个分支里,然后加一个系统配置项,可以关闭这些功能。不过这样的话就给客户的都是同一个东西,就体现不了差异性了。
    4 条回复    2019-11-02 00:57:37 +08:00
    loading
        1
    loading  
       2019-11-01 17:38:18 +08:00 via Android
    git 是代码管理,不是 app 功能管理。
    还不如在代码里做编译开关。
    youkiZ
        2
    youkiZ  
       2019-11-01 17:47:31 +08:00
    @loading 功能之间不一定兼容的,可能要大改,没法用编译开关的
    youkiZ
        3
    youkiZ  
       2019-11-01 17:48:02 +08:00
    目前我们就是这样做的。虽然麻烦一点,但是很明确。
    msg7086
        4
    msg7086  
       2019-11-02 00:57:37 +08:00
    master 改了不一定要 merge 过去,也可以让 feature 来 rebase master。其他的没有太好的办法。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   946 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:15 · PVG 03:15 · LAX 11:15 · JFK 14:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.