好吧,我也来谈一下如何避免 Git 分支合并时的冲突 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
xuanbg
V2EX    git

好吧,我也来谈一下如何避免 Git 分支合并时的冲突

  •  
  •   xuanbg Dec 15, 2022 2621 views
    This topic created in 1232 days ago, the information mentioned may be changed or developed.

    记住下面几个原则就好:

    1 、只保留 1 个永久性分支 main ,其他分支都是临时分支,在生命周期结束后(合并到 main 分支)就会被删除。

    2 、任何线上代码的变化,都不允许直接在已存在的分支中修改,而是通过从 main 分支合并来获取变化。

    3 、修改线上代码只能从 main 分支切出来进行修改,修改完成后需要合并回 main 分支。

    只要做到这 3 点,特别是第二点,就永远不会有代码冲突。有些团队喜欢搞什么测试分支、预发分支,其实都不需要。CI/CD 的精髓在 tag 而不是分支,通过不同类型的 tag 来实现自动化发布。

    9 replies    2022-12-17 06:58:54 +08:00
    DrakeXiang
        1
    DrakeXiang  
       Dec 15, 2022
    第二点并不能避免冲突,除非所有的分支都是顺序拉取的,否则两个人拉了同一版本的 main ,然后改了同一个文件的同一个地方,后合并的那个肯定会冲突
    xuanbg
        2
    xuanbg  
    OP
       Dec 15, 2022
    是的,但在我们一般不会多个人同时改同一个文件。
    DingJZ
        3
    DingJZ  
       Dec 16, 2022   1
    从分支本身也许能减少一部分问题, 不能避免, 还是要从设计上解决, 模块 /组件划分清晰, 从源头上需求和需求, 分支和分支就不应该冲突, 或者都是很好解决的冲突
    vvhhaaattt
        4
    vvhhaaattt  
       Dec 16, 2022 via Android
    这叫我想起来 rebase 跟 merge 了。
    penzi
        5
    penzi  
       Dec 16, 2022 via Android
    理想情况是这样的,但这只对自有产品,自己能把控发布节奏的团队有效。并且需要完善的测试 pipeline 和 review 保证有问题的代码最开始就不会进主分支。


    对于很多产品来说,不同客户有不同的定制化需求。而且因为工期紧,不可能写测试,不可能仔细 review ,没有时间仔细设计导致不同定制化需求无法合并到主分支。

    所以需要有测试分支给测试人员测试,所以需要不同版分支,每个分支都要单独维护。

    分支管理流程不是因是果。
    penzi
        6
    penzi  
       Dec 16, 2022 via Android
    只要交付给客户的是软件而不是一个在线服务,就不可避免的维护 n 个版本。最简单的比如维护各个版本的 Windows 系统,根本不可能用这套方法解决。
    xuanbg
        7
    xuanbg  
    OP
       Dec 16, 2022
    @DingJZ 确实,好的软件架构设计本身就能避免很多乱七八糟的问题。我也见过不少糟糕的设计导致一些最佳实践根本没法落地。
    Chemist
        8
    Chemist  
       Dec 16, 2022 via iPhone
    解决冲突并不可怕,所以没必要刻意避免。
    xuanbg
        9
    xuanbg  
    OP
       Dec 17, 2022
    @kyuuseiryuu 解决冲突会耗光我的耐心。。。所以就尽量避免冲突。
    About     Help     Advertise     Blog     API     FAQ     Solana     2688 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 02:49 PVG 10:49 LAX 19:49 JFK 22: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