请教 gitlab 的一些问题,主要觉得太多 merge 的 commit - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
paranoiagu
V2EX    GitLab

请教 gitlab 的一些问题,主要觉得太多 merge 的 commit

  •  
  •   paranoiagu 2017-09-27 08:06:25 +08:00 via Android 6628 次点击
    这是一个创建于 3000 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司今年开始用 git,用的是 gitlab,每个人 fork 后在自己的库上改,然后发 merge request,最后 root 合并到 root 主项目上。

    但是问题是最后的日志中太多 merge 日志了。另外也有同事提交上来的 merge request 中有 merge root 的日志。还有开发分支名字取的不规范,最后 merge 后,更晕了。

    现在突发奇想,能不能这样,同事发了 merge request 后,我不合并,我只看根据里面的 commit ID,全部直接 cherry-pick 到 root 的主分支。这样日志就干净了。

    现在请教大家,如果这么做有什么问题吗?有什么后遗症吗?

    13 条回复    2017-10-30 08:13:24 +08:00
    momocraft
        1
    momocraft  
       2017-09-27 08:18:04 +08:00
    这样做等价于你替他们 rebase -i,你有时间就没问题。
    mcfog
        2
    mcfog  
       2017-09-27 08:33:17 +08:00 via Android
    公司内部用 fork 的价值在哪里?统一发 pr 的话,pr 应该是有意义的,比如新版本 /patch 发布,多不是问题,问题是没有意义吧

    分支命名不规范就要求大家规范啊,如果你负责源码管理,那这就是你的锅。发邮件+开会说清楚分支命名要求,然后第二天起不合规范的 request 一律打回,over
    happypy1
        3
    happypy1  
       2017-09-27 08:40:10 +08:00
    设置命名规范,统一 merge 流程,merge 之前至少两个人 review,不合规范的不准 merge,基本上就可以杜绝这些情况了。。
    HangoX
        4
    HangoX  
       2017-09-27 08:46:00 +08:00 via Android
    不让用 merge 就好了,只能用 rebase
    Hstar
        5
    Hstar  
       2017-09-27 09:20:09 +08:00
    公司内部 fork 毫无意义+1
    mritd
        6
    mritd  
       2017-09-27 09:22:05 +08:00 via iPhone
    rebase 一下,然后走 gitflow

    参考这里 https://mritd.me/2017/09/05/git-flow-note/
    jk2K
        7
    jk2K  
       2017-09-27 09:23:18 +08:00
    公司内部没必要用 fork, 阮一峰有一篇文章讲的是 Git 协作流程的, http://www.ruanyifeng.com/blog/2015/12/git-workflow.html
    SoloCompany
        8
    SoloCompany  
       2017-09-27 09:50:08 +08:00
    你可以用 EE,支持 rebase 和 squash 工作流
    但我们采取的做法是手工合并,也完全能满足需求
    SoloCompany
        9
    SoloCompany  
       2017-09-27 09:52:27 +08:00
    还有就是公司内部不要用 fork,fork 了的话,merge request (push request) 一般因为权限问题是无法修改的,公司内部(或组内)应该采用 branch - merge 工作流,这样就没有权限问题,merge request (push request) 上就可以多人协作连续打补丁了
    SoloCompany
        10
    SoloCompany  
       2017-09-27 09:55:24 +08:00
    参考
    https://docs.gitlab.com/ee/user/project/merge_requests/squash_and_merge.html

    squash / rebase / fast-forward merge 是 EE 才有的功能
    paranoiagu
        11
    paranoiagu  
    OP
       2017-09-27 16:10:58 +08:00
    @momocraft
    @mcfog
    @happypy1
    @HangoX
    @Hstar
    @mritd
    @jk2K
    @SoloCompany

    先谢谢各位,学习了。
    总结一下:
    1、一定要确定规范,现在已经在这么做了,团队人数不多,所以做不到 2 人 review,现在上必须 1 人 review 并点赞后我才会 merge。
    2、公司内部是否 fork 的问题,我还要消化一下。
    3、另外 merge 比较乱的话,确实可以规定多用 rebase -i,否则不合并就可以。

    总之谢谢各位了,有啥好点子继续提供。
    superwater
        12
    superwater  
       2017-10-28 10:27:06 +08:00
    1. 内部的话确实 fork 的必要性不大。更多的库,整体开销更大。
    2. 如 @SoloCompany 所述,Gitlab EE 针对 merge 的选项更丰富些。此外分支名称等等也可以设置规则,不符合规则的无法推送。
    3. Rebase 会对 history 有影响,慎用
    paranoiagu
        13
    paranoiagu  
    OP
       2017-10-30 08:13:24 +08:00 via Android
    @superwater 谢谢。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     775 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 20:50 PVG 04:50 LAX 12:50 JFK 15:50
    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