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

将Master分支的新提交迁移回Staging分支的最优方法

Git操作方案

首先确认你直接推送到Master的提交已经通过测试、符合上线标准,如果提交还未验证,优先处理Master的异常提交再做同步。下面给出两种适配不同场景的操作方案:

方案1:直接合并Master到Staging(最安全,无历史篡改,适合Master提交已被团队拉取/已部署的场景)

该方案不会修改现有线上分支的提交记录,不会引发团队成员本地分支和远程分支的不一致问题,操作步骤如下:

  • 切换到本地Staging分支,拉取远程最新代码保证本地版本和远程一致
git checkout staging
git pull origin staging
  • 执行Master到Staging的合并操作
git merge master
  • 若出现合并冲突,解决冲突后执行提交
git add <冲突文件的路径>
git commit
  • 推送合并后的Staging分支到远程
git push origin staging

提示:该操作产生的Master反向合并Staging的记录不会影响后续工作流,后续你再从Staging往Master合并代码时,Git会自动识别已经同步的提交,不会产生重复冲突。

方案2:拣选提交+修正Master历史(适合Master误提交未被团队拉取、未部署的场景)

如果你希望严格遵守Feature Branches -> Staging -> Master -> Deploy的工作流,不出现Master反向合并Staging的记录,可以选择该方案:

  • 首先查看Master的提交日志,记录所有直接推送的误提交的哈希值,按提交时间从早到晚排序
git log master --oneline
  • 切换到本地Staging分支,拉取最新代码后执行拣选操作,把所有误提交同步到Staging
git checkout staging
git pull origin staging
git cherry-pick <最早的误提交哈希> <第二个误提交哈希> ... <最晚的误提交哈希>
  • 拣选无冲突后推送Staging到远程
git push origin staging
  • 回滚Master到误提交之前的版本,再走正常的Staging合并到Master的流程
git checkout master
git reset --hard <误提交前最后一个正确提交的哈希>
git push --force origin master # 注意:仅确认所有团队成员都未拉取过带误提交的Master分支时才能执行该操作,执行前必须全团队同步
git merge staging
git push origin master

提示:该方案完全符合你们的工作流规则,但涉及强制推送Master,操作风险更高,必须提前确认团队成员都没有基于错误的Master版本写代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:54:04