[咨询] 关于 git 版本管理 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
daodao116
V2EX    git

[咨询] 关于 git 版本管理

  •  
  •   daodao116 2019-04-10 10:07:43 +08:00 5155 次点击
    这是一个创建于 2378 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司的分支管理比较乱,因为是多个项目,且甲方都很强势,个性化需求非常多。但是作为同一个产品其实也有蛮多共性化的东西。

    开始打算是不同的项目在不同的分支上开发,不同的特性抽取出来之后做成开关之类的,去不同的甲方部署,就配置不同的开关。这些然后最后都要合并到主干上,形成统一的产品。

    但是理想是丰满的,现实是骨感的。因为进度非常紧,全部抽取成产品模块,工期会拉长,一般求进度就先做了再说。搞到最后,只有一些小客户遵循这样的模式,大客户就在不同的分支上迭代了,有些产品经理觉得可以抽取到产品上的,又几乎是通过手工方式合并到主干上,版本现在搞的非常乱,又合不起来。

    不知道针对这种同一个产品衍生粗来,但是每个客户又有很多定制化需求的版本控制,各位大佬有什么好一点的建议么?

    20 条回复    2020-12-01 09:43:03 +08:00
    gz911122
        1
    gz911122  
       2019-04-10 10:19:25 +08:00
    不知道 没待过乙方
    但是我从你的描述来看这种情况无解
    quickma
        2
    quickma  
       2019-04-10 10:34:33 +08:00
    你们的人够多吗?够多就可以做成模块提取,不够多就分开吧,合不起来就合不起来吧
    sonyxperia
        3
    sonyxperia  
       2019-04-10 10:40:05 +08:00
    抽取部分人开发产品化的新项目;另外的人维护老版本;逐步推进升级到新版本
    wangkun2012324
        4
    wangkun2012324  
       2019-04-10 10:47:30 +08:00
    严格实施组件化,各组件均区分版本,配置表管理各组件版本
    huahuajun9527
        5
    huahuajun9527  
       2019-04-10 10:52:38 +08:00
    定制化都是手工活。。。
    将功能拆分成模块,做一个能满足这类需求的框架,基于这个框架来做定制化开发。

    不过之后肯定会遇到一些奇葩的甲方提出的奇葩需求,框架不能很好的实现这些功能,这时又会回到最初的样子。。。
    shawndev
        6
    shawnde  
       2019-04-10 10:53:46 +08:00
    git submodule
    HangoX
        7
    HangoX  
       2019-04-10 11:23:30 +08:00
    因为定制化的问题,抽象是很难抽象的,建议直接建立一个母项目,然后所有人 fork 那个项目之后修改,需要共性的时候往母项目提 pull request 就好了
    wwwwzf
        8
    wwwwzf  
       2019-04-10 11:24:26 +08:00
    用 svn 好了
    shuang
        9
    shuang  
       2019-04-10 13:11:45 +08:00
    关注,我们也有同样的问题
    我们是优先通过开关控制
    然后在主线上同一功能做多个不同版本,通过菜单权限控制
    再不行了就开分支,目前也是很混乱
    passerbytiny
        10
    passerbytiny  
       2019-04-10 13:32:07 +08:00
    定制化开发,若甲方强势,则实质上每个甲方都是一个新的树,不再是分支。Git 对此无解。
    reus
        11
    reus  
       2019-04-10 13:52:39 +08:00
    产品不标准化,客户想要什么就有什么,这种产品是没办法快速复制,没办法做大的,收益抵不上成本

    参考福特汽车早期的案例,标准化的流水线,可以击败那些效率低下的定制化工厂,不管你要什么,我就只有标准化的汽车。虽然没有定制,但成本低,可以卖得便宜

    所以,定制化的,要么只靠几个大客户生存,要么就放弃定制化,要么就靠压榨员工不管质量
    daodao116
        12
    daodao116  
    OP
       2019-04-10 14:00:05 +08:00
    @wangkun2012324 现在大概也是想走这条路了。只能尝试一下。
    ben1024
        13
    ben1024  
       2019-04-10 14:07:58 +08:00
    要区分是 git 混乱,还是项目混乱
    danyi
        14
    danyi  
       2019-04-10 16:34:40 +08:00
    关注,同样有这样的困扰。
    Fule
        15
    Fule  
       2019-04-10 16:59:14 +08:00
    看起来楼主的情况,很难用分支处理。尤其是如果甲方 A 的功能甲方 B 也想要,但是甲方 C 不要。又或者甲方 D 和甲方 E 的需求根本就是矛盾的。这些情况分支似乎解决不了问题。我能想到的就是压根不要用分支,全都做在一起,纯利用开关来处理。当然,久而久之,开关关系错综复杂,一个小地方会被多个开关影响,理解起来也是非常混乱的。除非事先自己的规划和分析以及有份及时更新的文档,不过看楼主这情况,基本上也不太可能吧。总之,这个问题开发方面似乎没有什么“完美”的解决方法。。。
    sunocean
        16
    sunocean  
       2019-04-10 17:10:15 +08:00
    submodule +1
    daodao116
        17
    daodao116  
    OP
       2019-04-10 18:16:06 +08:00
    @sunocean 我研究一下,谢谢。
    haozibi
        18
    haozibi  
       2019-04-10 18:32:43 +08:00
    为什么不做成模块化的
    haato
        19
    haato  
       2019-07-23 16:39:08 +08:00
    国内很多传统行业软件都有这个问题吧。用户强势,需求变化快,用户对业务理解不深刻等等原因。感觉国内的这类情况,没有什么绝对好的方法,还是根据具体工期具体阶段选择合适的方法。个人感觉首先要分析用户需求,是业务痛点需求,还是某几个领导拍脑袋的想法?是需要长期维护的,还是做一两次就差不多的?由此决定哪些是核心业务功能,对于这些功能,一定要抽象出来模块化通用化,这事做得越早越有价值。其他模块,有人力就模块化,没人力就各干各的,以后再看情况处理。
    luckhzq
        20
    luckhzq  
       2020-12-01 09:43:03 +08:00
    也是同样的问题,不知道大家有没有什么更好的方案
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3198 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 12:08 PVG 20:08 LAX 05:08 JFK 08:08
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86