coolair
V2EX  ›  问与答

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

  •  
  •   coolair · Nov 1, 2019 · 1477 views
    This topic created in 2387 days ago, the information mentioned may be changed or developed.
    目前做法是:
    代码仓库 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 replies    2019-11-02 00:57:37 +08:00
    loading
        1
    loading  
       Nov 1, 2019 via Android
    git 是代码管理,不是 app 功能管理。
    还不如在代码里做编译开关。
    youkiZ
        2
    youkiZ  
       Nov 1, 2019
    @loading 功能之间不一定兼容的,可能要大改,没法用编译开关的
    youkiZ
        3
    youkiZ  
       Nov 1, 2019
    目前我们就是这样做的。虽然麻烦一点,但是很明确。
    msg7086
        4
    msg7086  
       Nov 2, 2019
    master 改了不一定要 merge 过去,也可以让 feature 来 rebase master。其他的没有太好的办法。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2945 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 14:18 · PVG 22:18 · LAX 07:18 · JFK 10:18
    ♥ Do have faith in what you're doing.