请教一下各位有没有这么用版本控制的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
/div>
aa514758835
V2EX    git

请教一下各位有没有这么用版本控制的

  •  
  •   aa514758835 2024-10-31 10:07:42 +08:00 3681 次点击
    这是一个创建于 411 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如一个项目有很多文件夹,配置文件,源码等。源码都用的主分支,配置文件根据哪个项目用哪个分支的配置文件。 就想问一下实际真有人这么用吗?

    23 条回复    2024-11-01 21:16:47 +08:00
    xiaogu2014
        1
    xiaogu2014  
       2024-10-31 10:18:04 +08:00
    ```不应该用多个分支来作为不同的 source of truth 。```

    可以说下更多的 context 为啥要这么做。 写不同的配置文件不行吗。
    foolishcrab
        2
    foolishcrab  
       2024-10-31 10:21:26 +08:00 via iPhone
    新开一个文件夹放配置不是比新开分支好维护吗?配置加个 key 还得疯狂切分支?
    nxforce
        3
    nxforce  
       2024-10-31 10:24:35 +08:00
    开发阶段我们是在 master 主分支罗列所有的配置文件,然后分支再指定用哪个配置文件。

    不过,生产环境的配置和源代码和二进制分发包分离,直接配置到服务器里,也就和分支什么没关系了。
    aa514758835
        4
    aa514758835  
    OP
       2024-10-31 10:40:39 +08:00
    我从未见过这么使用的,然后为了这么使用需要做很多额外开发工作我就觉的这个方向有问题,明显是把问题复杂化了。

    理论上用分支肯定是整个切的,然后有需要去合并到主分支,基本都是这么用的。

    我感觉为什么这么做你们应该知道了,属于不会开车指导会开车的。
    snake2004
        5
    snake2004  
       2024-10-31 10:41:42 +08:00
    @xiaogu2014 如果不同项目的配置文件都在一个分支里,不同项目间都能看到别的项目的配置,无法实现项目间的权限控制。
    Pdk5a8759cbeD6CH
        6
    Pdk5a8759cbeD6CH  
       202-10-31 10:45:53 +08:00
    听你说就感觉很繁琐
    dzdh
        7
    dzdh  
       2024-10-31 10:46:57 +08:00
    这时候就显示出来环境变量的重要性了

    laravel / go / rust 都有 dotenv 吧
    snake2004
        8
    snake2004  
       2024-10-31 10:47:04 +08:00
    @aa514758835 如果不按项目分支,某个项目下版本就从主分支下,然后要改配置为某个项目,毕竟所有项目配置都在一个分支里,运行时用哪个项目配置要指定。如果按项目分支,就直接从项目分支同步后不用改直接可以运行。
    newaccount
        9
    newaccount  
       2024-10-31 10:57:53 +08:00
    看起来怎么那么像是传统 ERP 的版本管理方式呢
    master 作为核心代码一直往前走,有客户购买就切个分支出来,这个分支的起点不一定是 master
    之后这个分支会做一些针对这个客户的定制开发,开发的结果不会合并回 master ,因为没有意义
    如果有些功能需要从 master 到分支,会采取类似 cherry pick 的方式,但分支还是保持各自独立
    不好说对错,以前 vss/svn 很多公司都是这么玩的
    现在 git 怎么弄合适还真不清楚,不在这种类型的行业做了
    lasuar
        10
    lasuar  
       2024-10-31 11:04:07 +08:00
    你自己都察觉不合理了,还问。
    aa514758835
        11
    aa514758835  
    OP
       2024-10-31 11:07:05 +08:00
    @lasuar 多问不好吗?
    jim9606
        12
    jim9606  
       2024-10-31 12:44:05 +08:00 via Android
    最好别这么用。
    可以每个分支都有全套源码+专属配置,也可以单分支源码仓库+多分支配置仓库。
    我能想到强行用同一个仓库的理由是你想白嫖一个按仓库数限额的 VCS 托管平台。
    aa514758835
        13
    aa514758835  
    OP
       2024-10-31 14:04:15 +08:00
    @jim9606 了解~~
    snake2004
        14
    snake2004  
       2024-10-31 14:30:29 +08:00
    @jim9606 你这所谓每个分支有全套源码+专属配置,不就是从主分支检出不同项目的分支么,生成的分支必然是有建立分支时的全套源码。
    IvanLi127
        15
    IvanLi127  
       2024-10-31 14:42:27 +08:00
    这... 如果有用 git submodule 来处理的话,应该有吧...这似乎前提是放在单独的目录里。

    反正我不会这么用,好麻烦
    weeei
        16
    weeei  
       2024-10-31 14:55:34 +08:00
    这种情况适合使用 fork ,这样就需要多个仓库。你现在这种做法只不过是不想 fork 而采用的简单方案。没啥问题。
    xiaogu2014
        17
    xiaogu2014  
       2024-10-31 15:31:18 +08:00
    @snake2004 项目见的权限控制可以放在不同的 repo 里面。
    以及放在不同分支里就可以实现项目间的权限控制了吗。。。。
    snake2004
        18
    snake2004  
       2024-10-31 17:52:48 +08:00
    @xiaogu2014 服务端可用 hook 实现
    location123
        19
    location123  
       2024-10-31 17:56:04 +08:00
    repo ?
    simen513
        20
    simen513  
       2024-10-31 18:28:04 +08:00
    配置通过代码生成,传不同参数就生成不同的配置,这样就可以都放在一个 repo 中。
    needhourger
        21
    needhourger  
       2024-11-01 14:42:51 +08:00
    其实算好的,认识一位非科班出生的大佬用分支来发版,比如版本 v1.0.0 就从 main 分支切出来一个 branch 叫 v1.0.0
    ,于是打开 ta 的项目可以看到一吨的分支.
    sillydaddy
        22
    sillydaddy  
       2024-11-01 20:10:32 +08:00
    是不是源码一个仓库,配置文件是另一个仓库,然后这两个仓库之间还没有 submodule 的关系?
    aa514758835
        23
    aa514758835  
    OP
       2024-11-01 21:16:47 +08:00
    @sillydaddy 我没用过子模块,这个是一个项目一个配置文件子分支,然后源码主分支
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3028 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 12:49 PVG 20:49 LAX 04:49 JFK 07:49
    Do have faith in what you're doing.
    ubao msn 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