V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
css3
V2EX  ›  程序员

gitlab 怎么定时自动 merge 分支?

  •  
  •   css3 · 2020-10-16 10:54:24 +08:00 · 4100 次点击
    这是一个创建于 1534 天前的主题,其中的信息可能已经有所发展或是发生改变。
    开发在个人分支,master 因提交频繁,从个人分支 merge 到 master 时,每次都要手动先从 master merge 最新的代码到个人分支,再合入 master,
    如何做到间隔几分钟自动从 master merge 到个人分支?
    19 条回复    2020-10-17 10:59:21 +08:00
    jiaxin1121
        1
    jiaxin1121  
       2020-10-16 11:00:28 +08:00
    代码冲突了怎么办
    mikicomo
        2
    mikicomo  
       2020-10-16 11:01:17 +08:00
    你自己的分支合并到 master 时,为啥非要同步一次 master 的修改? 冲突很多?多人同时修改一个文件么
    Molita
        3
    Molita  
       2020-10-16 11:03:12 +08:00
    xurunfei
        4
    xurunfei  
       2020-10-16 11:03:23 +08:00
    如果只有自己开发没事,有别人不能这么干,冲突就麻烦了,可以自己写个定时器提交代码,我的笔记就是写了个定时器,每天提交代码
    KuroNekoFan
        5
    KuroNekoFan  
       2020-10-16 11:04:18 +08:00
    gitlab 的话有 schedules
    blindie
        6
    blindie  
       2020-10-16 11:05:34 +08:00 via Android
    你这滥用 git 。不如自动 rebase remote master 。
    tanghanyu
        7
    tanghanyu  
       2020-10-16 11:07:59 +08:00
    这种不可能自动的吧,经常都会有些冲突需要解决的
    css3
        8
    css3  
    OP
       2020-10-16 11:12:43 +08:00
    @css3 @jiaxin1121 @mikicomo @Molita @xurunfei @KuroNekoFan @blindie @tanghanyu
    我的理解,有冲突应该是 merge 失败的吧
    css3
        9
    css3  
    OP
       2020-10-16 11:14:06 +08:00
    @Molita 这个是手动触发 merge,然后 pipline 过了自动合入,我想要全自动 merge 进去
    css3
        10
    css3  
    OP
       2020-10-16 11:16:20 +08:00
    @mikicomo 因为我自己的分支落后 master 分支,所以要先 merge 同步更新自己的分支
    no1xsyzy
        11
    no1xsyzy  
       2020-10-16 11:28:46 +08:00
    没必要,真的合并前 merge 一下就成
    另外,除非有 CI 不然不要随便自动 merge,就算按行正常合并了也可能有逻辑错误的。
    ruanimal
        12
    ruanimal  
       2020-10-16 11:30:16 +08:00
    @css3 有可能 merge 是吧就没法全自动啊
    mikicomo
        13
    mikicomo  
       2020-10-16 11:47:00 +08:00
    @css3 #10 你这样的工作流有一个弊端,你自己的 develop 分支会实时同步 master 。同步到别人的修改,如果涉及到多迭代,多需求情况下,每个需求上线时间点不一样,你这样的流程操作会有问题的。

    从 master 切出 feature1 、feature2 、等分支分别开发不同的需求,并且开发期间,不去同步其他分支的代码。
    开发完了,合并到 develop 分支进行测试,测试完毕,如果本次迭代只发布 feature1,feature3,那么吧 feature1,feature3 合并到 release 分支,最后把 release 合并到 master

    你这样的情况,如果团队都是这样处理的话,建议还是手动 merge,没必要自动 merge
    chinvo
        14
    chinvo  
       2020-10-16 12:48:24 +08:00 via iPhone
    从 feature 分支合并到 master 之前不需要从 master 合并到 feature
    msg7086
        15
    msg7086  
       2020-10-16 13:07:53 +08:00 via Android
    分支落后于主线应该 rebase 而不是 merge 。merge 完了以后你的分支也包含了其他分支的内容,便没法单独隔离或移植到其他主线分支了。
    littlewing
        16
    littlewing  
       2020-10-16 14:15:41 +08:00 via iPhone
    更好的做法不是把 master merge 到个人分支,而是个人分支 rebase 到 master HEAD,这样最后的 commit 记录会比较干净,不然你看到就是 merge 来 merge 去的一大堆无用的 log
    Maxcj
        17
    Maxcj  
       2020-10-16 16:45:38 +08:00
    @chinvo 他有可能是个人分支里面写的代码需要依赖另外一个人的代码。
    chinvo
        18
    chinvo  
       2020-10-16 16:46:38 +08:00 via iPhone
    @Maxcj 那就说明工作流程不规范,这种情况应该从他依赖的工作分支上 fork 而不是从 master 上
    sd539994389
        19
    sd539994389  
       2020-10-17 10:59:21 +08:00
    我之前的做法是基于 CI 定时,或者 python 用 gitlab 的库跑,冲突会停止汇总邮件发出
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2810 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 03:11 · PVG 11:11 · LAX 19:11 · JFK 22:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.