You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

合并develop分支到master后,如何对develop执行rebase操作?

实现develop合并到master后自动rebase到master的方案

方案一:CI/CD流水线自动触发(推荐)

以GitLab CI为例,通过流水线在master分支更新时自动完成rebase操作,步骤如下:

  1. 配置CI权限
    进入项目「设置」->「仓库」->「受保护的分支」,找到develop分支,在「允许推送」中添加CI/CD角色(或勾选「允许来自CI/CD的推送」选项),确保CI runner有权限推送更新后的develop分支。

  2. 编写CI配置文件
    在项目根目录创建或修改.gitlab-ci.yml,添加如下job:

    rebase-develop-after-master-merge:
      stage: post-release
      only:
        - master  # 仅当master分支有更新时触发(即develop合并到master后)
      script:
        - git config --global user.name "CI自动执行"
        - git config --global user.email "ci-auto@your-domain.com"
        - git checkout develop
        - git pull origin develop --rebase  # 拉取最新develop,避免本地落后
        - git rebase master  # 将develop rebase到最新master
        - git push origin develop --force-with-lease  # 安全强制推送,避免覆盖未同步提交
      tags:
        - your-runner-tag  # 指定可用的CI Runner标签
    

    关键说明:

    • 使用--force-with-lease替代直接--force,会检查远程develop是否有本地未获取的新提交,降低误覆盖风险。
    • 若使用GitHub Actions,逻辑类似,只需把配置改成GitHub Actions的语法,同时给GitHub Actions的机器人账号添加推送develop的权限。

方案二:本地Git钩子(适合团队统一配置)

通过Git的post-merge钩子,在本地合并到master后自动触发rebase操作:

  1. 创建钩子脚本
    在项目的.git/hooks目录下创建post-merge文件,写入内容:

    #!/bin/bash
    # 仅当合并操作目标为master分支时执行
    if [ "$(git rev-parse --abbrev-ref HEAD)" = "master" ]; then
        echo "开始将develop rebase到master..."
        git checkout develop
        git pull origin develop --rebase
        git rebase master
        git push origin develop --force-with-lease
        git checkout master
    fi
    
  2. 添加执行权限
    运行命令给脚本加执行权限:

    chmod +x .git/hooks/post-merge
    

    注意:此方法需要团队所有成员同步配置钩子,否则无法保证所有人都能触发自动操作,仅适合小型团队或严格规范的场景。

方案三:手动操作流程(无自动化需求时)

若不需要自动化,可按以下步骤手动完成:

  • 切换到master分支并拉取最新代码:git checkout master && git pull origin master
  • 切换到develop分支并拉取最新代码:git checkout develop && git pull origin develop
  • 将develop rebase到master:git rebase master
  • 若出现冲突,解决冲突后执行:git rebase --continue
  • 安全推送更新后的develop:git push origin develop --force-with-lease

通用注意事项

  • 只有拥有develop分支推送权限的维护者,才能执行rebase后的推送操作(不管是手动还是CI)。
  • rebase操作会改写develop的提交历史,团队需提前达成共识,避免其他开发者基于旧的develop提交代码导致冲突。

内容的提问来源于stack exchange,提问作者Oodini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 18:45:03