是否可以向Heroku上已回滚的提交提交文件以更新app.js
操作可行性与正确操作流程
可以基于你已经回滚的版本修改app.js并部署,但是绝对不要直接修改已经存在的历史提交记录,否则会引发团队分支冲突、后续代码合并混乱。
注:如果你是通过
heroku rollback命令执行的回滚,该操作只会变更Heroku的实际运行版本,不会修改Heroku对应Git远程仓库的master分支提交记录,你需要先从Heroku控制面板的活动日志中找到你回滚到的目标提交的哈希值,再执行后续操作。
1. 本地同步到回滚后的目标版本
- 拉取Heroku远程仓库的全量提交记录:
git fetch heroku - 基于你拿到的回滚目标提交哈希,新建独立的生产热修复分支:
git checkout -b hotfix-prod <目标提交哈希值>
2. 修改并提交app.js
完成app.js的调整后,执行本地提交:
git add app.js git commit -m "hotfix: 生产环境临时更新app.js(基于回滚版本)"
3. 部署到Heroku生产环境
将热修复分支强制推送到Heroku的master分支完成部署,注意不要将该强制推送操作执行到团队共享的origin代码仓库,避免影响其他同事的开发进度:git push heroku hotfix-prod:master --force-with-lease
推荐使用
--force-with-lease参数而非普通的--force,该参数会先校验远程分支是否有未同步的新提交,避免误覆盖其他人的部署内容。
4. 后续代码合并
等团队完成原有bug的修复后,将本次热修复的提交合并到修复后的主分支中,避免本次app.js的修改丢失。
内容的提问来源于stack exchange,提问作者AndrewLeonardi
相关产品推荐
相关产品推荐

