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

如何将development分支的成功提交迁移至staging分支?

将指定分支的成功提交完整同步到目标分支的方案

你遇到的问题是因为cherry-pick仅会应用单个提交的变更,而那个构建成功的提交本身可能没有包含package.json,或者该文件的依赖状态来自更早的提交,单独摘取这个提交无法还原完整的可运行代码环境。以下是几种更可靠的解决方法:

方法一:直接将staging分支重置到目标提交(适用于staging分支可覆盖的场景)

如果staging分支没有未合并的本地或远程修改,可直接重置到development分支上那个构建成功的提交:

  1. 拉取远程最新分支确保本地状态同步:
    git fetch origin
    
  2. 切换到staging分支:
    git checkout staging
    
  3. 重置分支到指定的成功提交哈希:
    git reset --hard <你的成功提交哈希值>
    
  4. 强制推送到远程staging分支(注意:如果有其他开发者在staging分支工作,需提前沟通确认):
    git push origin staging --force
    

方法二:基于成功提交创建新分支替换staging

如果不想直接重置现有staging分支,可创建一个基于目标提交的新分支,替换远程staging:

  1. 从development的成功提交创建新分支:
    git checkout -b staging-temp <你的成功提交哈希值>
    
  2. 删除远程旧staging分支:
    git push origin :staging
    
  3. 将新分支推送到远程作为staging:
    git push origin staging-temp:staging
    
  4. 本地切换到新的staging分支并删除临时分支:
    git checkout staging
    git branch -d staging-temp
    

方法三:合并目标提交的完整状态到staging(适用于staging有需要保留的修改)

如果staging分支有需要保留的提交,可先将development的成功提交合并进来,解决冲突后再推送:

  1. 切换到staging分支:
    git checkout staging
    
  2. 合并指定的成功提交到当前分支:
    git merge <你的成功提交哈希值>
    
  3. 若出现冲突,手动解决后提交:
    git add .
    git commit -m "Merge successful commit from development"
    
  4. 推送到远程:
    git push origin staging
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:15:34