MiraiWithRin
V2EX  ›  问与答

请教各位大佬,关于 git 同一笔 commit 提交多个分支,如何操作最方便?

  •  
  •   MiraiWithRin · Nov 9, 2024 · 3041 views
    This topic created in 726 days ago, the information mentioned may be changed or developed.

    问题概述

    假设有十个基于 master 的 branch ,如果 master 提交了 bugfix 的 commit ,

    如何提交到各个 branch 最为简单?可以不考虑冲突,此类提交也基本不会有冲突。

    为什么不 merge master ?

    因为有的项目是已经封板了的,不能更新需求,也有的项目代码是外发合作开发的,

    公司规定不允许 merge master

    目前的方法

    当前是专门拉一个干净的有全部 branch 的仓库,一个一个切换分支 cherry-pick ,但是感觉很笨,

    所以请教各位大佬有没有更优解?

    先谢谢各位

    10 replies  •  2024-11-09 16:55:33 +08:00
    RightHand
    RightHand
    Nov 9, 2024 via Android
    1
    限制那么多?那就 ctrl c v
    Garwih
    Garwih
    Nov 9, 2024 via iPhone
    2
    基于公共祖先 commit 创建一个 fix 分支,修复后再合并到各个分支。
    kongkongkong101
    kongkongkong101
    Nov 9, 2024 via iPhone❤️1
    3
    写个 sh 脚本,循环里做 switch cherrypick push
    codersherlock
    codersherlock
    Nov 9, 2024 via iPhone❤️1
    4
    @kongkongkong101 +1 ,cherrypick -ne 0 然后记下来,最后在手动 rebase
    povsister
    povsister
    Nov 9, 2024 via iPhone
    5
    backport 的通用做法就是 cherrypick ,至于要一个个操作…?你们没有 ci bot 吗?
    PR 下面留个 command 指定要 backport 的分支/release tag ,剩下 bot 会帮你搞定
    COW
    COW
    Nov 9, 2024 via Android
    6
    foreach{
    checkout $branch
    cherry-pick $patch_commit --abort
    }
    MiraiWithRin
    MiraiWithRin
    OP
    Nov 9, 2024
    7
    @RightHand 谢谢老哥回复,我这代码 400G+,没这么多空间来 CV ,一个人也就分几个仓库而已
    MiraiWithRin
    MiraiWithRin
    OP
    Nov 9, 2024
    8
    @povsister 代码太大了,不适合 CI ,然后也从来没人用过 tag 呢
    envooy
    envooy
    Nov 9, 2024 via iPhone
    9
    git rebase —onto <remote-target-branch> HEAD~1 && git push HEAD:refs/heads/<target-branch-name>
    nekochyan
    nekochyan
    Nov 9, 2024
    10
    Cherry-pick ,idea 上叫优选
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4932 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 88ms · UTC 08:45 · PVG 16:45 · LAX 00:45 · JFK 03:45
    ♥ Do have faith in what you're doing.