V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dreampython
V2EX  ›  程序员

如何解决 gitlab 中 mr 互相追加 commit 的问题

  •  
  •   dreampython · 2021-02-28 23:14:57 +08:00 · 2112 次点击
    这是一个创建于 1146 天前的主题,其中的信息可能已经有所发展或是发生改变。

    开发团队中同一个人,因为同时开发多个需求或者 bug 单,本地 push 代码到多个 remote 分支,然后分别 new merge request 到 master 分支,后面 new 的 mr 的 change 里会出现之前 mr 的 commit 信息,会导致 code review 时分不清楚哪些代码的变更是这个 mr 对应 issue 对应的了。

    目前最笨的办法是只能先 code review 一个 mr,merge 后,在 new merge request,这样效率太低了,也很难受。

    如果允许同时有多个 mr 时,又会导致 code review 时,分不清代码的问题。

    请大家帮忙看看,是否有人也有相同的问题,有什么解决方法?谢谢了!

    4 条回复    2021-03-01 00:29:44 +08:00
    zhzy0077
        1
    zhzy0077  
       2021-02-28 23:24:43 +08:00   ❤️ 1
    如果两个 MR 是相互独立的,最好的办法是从 master checkout 出第二个 MR 的分支,这样第二个 MR 就不会包括第一个 MR 的内容了。
    如果第二个 MR 依赖第一个,那要么等第一个 merge 了再开第二个要么 target branch 就应该是第一个 MR 的分支,等 merge 了再改 target branch 。
    mxalbert1996
        2
    mxalbert1996  
       2021-02-28 23:56:45 +08:00 via Android   ❤️ 1
    正确的工作流程难道不应该是每个需求或 BUG 都从 master 切出一个新的分支开发么?
    guog
        3
    guog  
       2021-03-01 00:13:43 +08:00 via Android   ❤️ 1
    不要分别 push,只需要 push 到对应修复 bug 的分支或者此 feature 分支,其他的分支自行 Cherry pick
    jinliming2
        4
    jinliming2  
       2021-03-01 00:29:44 +08:00   ❤️ 2
    一楼说的对,如果独立,则每次都应该从 master 的最新代码切出分支来开发,而不是基于上一次提交。

    如果不独立,新提交依赖旧提交,那此时旧提交还在 review 过程中,如果代码不合格,出现 require change,那么此时代码可能还会发生变化,后续的提交如果基于这个提交来的话就会出现问题。所以新提交的 MR 应当标记为 WIP,等待旧提交完成 review 后确定 merge 之后,再 rebase 到最新代码解决冲突,然后再去掉 WIP 标记开始 review 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1173 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:17 · PVG 02:17 · LAX 11:17 · JFK 14:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.