You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Git两分支(master与stage)同步及工作流程调整可行性咨询

当然可行!这绝对是个能让你的生产环境跟上测试版本进度、同时建立稳定发布流程的好方案,我来帮你梳理清楚具体操作和规范流程:

一、先搞定两个分支的历史同步(关键前提)

现在你的master分支(对应测试版本)比stage分支(对应生产版本)新了2个月,里面肯定包含这段时间测试验证过的功能修复和优化,所以第一步得把这些更新同步到生产分支,不然生产版本会一直落后于测试版本:

  1. 先拉取远程仓库的所有最新代码:
    git fetch origin
    
  2. 切换到stage分支,拉取最新的生产分支代码:
    git checkout stage
    git pull origin stage
    
  3. master的更新合并到stage
    git merge master
    
    • 这一步大概率会碰到代码冲突,别慌,手动解决冲突就行,一定要确保合并后的代码逻辑是正确的
  4. 合并完成后,先部署到测试URL(原来master对应的测试环境)验证一遍,确认没有问题后,再推送到远程stage分支,同时部署到生产环境:
    git push origin stage
    
二、规范后续的工作流(完全符合你的需求:stage修改测试→推生产)

分支同步完成后,你可以建立这套稳定的工作流:

  • 日常开发&测试
    • 所有功能开发、bug修复都直接在stage分支进行(如果是团队协作的话,更建议从stage切出单独的feature/xxxbugfix/xxx分支,开发完再合并回stage,这样能避免多人提交的冲突,也方便代码评审)
    • 每次提交代码后,自动或手动部署到测试URL验证,确保功能正常、没有回归问题
  • 发布到生产
    • stage分支的代码经过充分测试,确认可以上线后,直接推送到远程stage分支(如果用了子分支,先合并到stage再推送)
    • 触发部署流程,把stage分支的代码部署到生产URL
  • 分支维护小技巧
    • 每次发布生产后,给stage分支打一个版本标签,方便后续回溯问题:
      git tag -a v1.2.0 -m "生产版本v1.2.0"
      git push origin v1.2.0
      
    • 定期清理已经合并的子分支,避免仓库分支杂乱
三、几个避坑提醒
  • 如果是团队协作,千万别直接在stage上硬提交!用子分支+合并请求(PR)的方式更稳妥,还能做代码评审
  • 每次合并或发布前,一定要在测试环境充分验证,哪怕是小改动也别跳过这一步,不然生产环境出问题就得不偿失了
  • 保留好历史标签,万一生产环境出问题,能快速回滚到上一个稳定版本:
    git checkout v1.1.0
    # 部署这个版本到生产即可
    

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

火山引擎 最新活动