• 请不要在回答技术问题时复制粘贴 AI 生成的内容
css3
V2EX  ›  程序员

gitlab 怎么定时自动 merge 分支?

  •  
  •   css3 · Oct 16, 2020 · 5618 views
    This topic created in 2210 days ago, the information mentioned may be changed or developed.
    开发在个人分支,master 因提交频繁,从个人分支 merge 到 master 时,每次都要手动先从 master merge 最新的代码到个人分支,再合入 master,
    如何做到间隔几分钟自动从 master merge 到个人分支?
    19 replies  •  2020-10-17 10:59:21 +08:00
    jiaxin1121
    jiaxin1121
    Oct 16, 2020
    1
    代码冲突了怎么办
    mikicomo
    mikicomo
    Oct 16, 2020
    2
    你自己的分支合并到 master 时,为啥非要同步一次 master 的修改? 冲突很多?多人同时修改一个文件么
    xurunfei
    xurunfei
    Oct 16, 2020
    4
    如果只有自己开发没事,有别人不能这么干,冲突就麻烦了,可以自己写个定时器提交代码,我的笔记就是写了个定时器,每天提交代码
    KuroNekoFan
    KuroNekoFan
    Oct 16, 2020
    5
    gitlab 的话有 schedules
    blindie
    blindie
    Oct 16, 2020 via Android
    6
    你这滥用 git 。不如自动 rebase remote master 。
    tanghanyu
    tanghanyu
    Oct 16, 2020
    7
    这种不可能自动的吧,经常都会有些冲突需要解决的
    css3
    css3
    OP
    Oct 16, 2020
    8
    @css3 @jiaxin1121 @mikicomo @Molita @xurunfei @KuroNekoFan @blindie @tanghanyu
    我的理解,有冲突应该是 merge 失败的吧
    css3
    css3
    OP
    Oct 16, 2020
    9
    @Molita 这个是手动触发 merge,然后 pipline 过了自动合入,我想要全自动 merge 进去
    css3
    css3
    OP
    Oct 16, 2020
    10
    @mikicomo 因为我自己的分支落后 master 分支,所以要先 merge 同步更新自己的分支
    no1xsyzy
    no1xsyzy
    Oct 16, 2020
    11
    没必要,真的合并前 merge 一下就成
    另外,除非有 CI 不然不要随便自动 merge,就算按行正常合并了也可能有逻辑错误的。
    ruanimal
    ruanimal
    Oct 16, 2020
    12
    @css3 有可能 merge 是吧就没法全自动啊
    mikicomo
    mikicomo
    Oct 16, 2020
    13
    @css3 #10 你这样的工作流有一个弊端,你自己的 develop 分支会实时同步 master 。同步到别人的修改,如果涉及到多迭代,多需求情况下,每个需求上线时间点不一样,你这样的流程操作会有问题的。

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

    你这样的情况,如果团队都是这样处理的话,建议还是手动 merge,没必要自动 merge
    chinvo
    chinvo
    Oct 16, 2020 via iPhone
    14
    从 feature 分支合并到 master 之前不需要从 master 合并到 feature
    msg7086
    msg7086
    Oct 16, 2020 via Android
    15
    分支落后于主线应该 rebase 而不是 merge 。merge 完了以后你的分支也包含了其他分支的内容,便没法单独隔离或移植到其他主线分支了。
    littlewing
    littlewing
    Oct 16, 2020 via iPhone
    16
    更好的做法不是把 master merge 到个人分支,而是个人分支 rebase 到 master HEAD,这样最后的 commit 记录会比较干净,不然你看到就是 merge 来 merge 去的一大堆无用的 log
    Maxcj
    Maxcj
    Oct 16, 2020
    17
    @chinvo 他有可能是个人分支里面写的代码需要依赖另外一个人的代码。
    chinvo
    chinvo
    Oct 16, 2020 via iPhone
    18
    @Maxcj 那就说明工作流程不规范,这种情况应该从他依赖的工作分支上 fork 而不是从 master 上
    sd539994389
    sd539994389
    Oct 17, 2020
    19
    我之前的做法是基于 CI 定时,或者 python 用 gitlab 的库跑,冲突会停止汇总邮件发出
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2734 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 71ms · UTC 14:39 · PVG 22:39 · LAX 06:39 · JFK 09:39
    ♥ Do have faith in what you're doing.