• 提高cherry-pick效率的脚本


    ## 背景

    有一份代码, 需要被应用到多个分支上, 所以选择了cherry-pick来实现

    但是当需要被cherry-pick的commit太多的时候, 需要一个个去找到对应的commit-id, 比较麻烦

    ## 解决办法:bash脚本

    function get-commit-message-by-commit-id() {
      local commit_id=$1
      git log --format=%B -n 1 $commit_id | cat
    }
    
    # 获取前N个commit的commit号, 用于cherry-pick
    function get-0-to-N-commits() {
      local commit_num=$1
      echo "找出 $(git rev-parse --abbrev-ref HEAD) 分支最新的 (0..$commit_num) commits"
    
      for i in {0..$commit_num}; do
        local commit_id=$(git rev-parse  HEAD~$i)
        echo "git cherry-pick $commit_id ; # 第 $i 个 $(get-commit-message-by-commit-id $commit_id)";
      done
    }
    

    ## 用法

    把当前分支的前11个commit,cherry-pick到其他分支上

    ### 步骤.1 列出需要被pick的comit, 并拼接成命令

    lijunwei@bxzy:udesk_yy_oss$ get-0-to-N-commits 10

     ### 步骤.2 切到对应的分支, 从下到上(注意是从下到上pick), 依次cherry-pick

    ## 反思

    cherry-pick的时候,会发现

    + 如果每个commit都是相对独立的, cherry-pick的体验很好

    + 如果每个commit整理得很乱, cherry-pick的体验时就会很痛苦, 可能需要反复解决冲突

  • 相关阅读:
    hdu 1164 Eddy's research I
    链式线性表的实现
    StreamReader和StreamWrite和FileStream区别和用法
    后台返回json数据,前台显示代码
    数字分页类
    在线编辑器总结
    C# Web开发打开下载对话框代码
    Jquery validate插件使用方法详解
    正则表达式
    漂亮的表格样式
  • 原文地址:https://www.cnblogs.com/leejunwei/p/git-cherry-pick-effiency.html
Copyright © 2020-2023  润新知