前情是这样的
前端代码一直是一个人维护,因此只是开了一个个人分支,然后不管是新功能开发还是bug修复什么的,都往那一个分支上提交。
需要上线的时候会merge到上线的分支,一直以来都是这么干的,但是今天出问题了。通过这个问题我也有了反思。具体见下文:
问题是这样的
需要上线hyh分支最新的一次修复bug的commit,但前几次添加新功能的commit是不需要上线的,但是他们的提交时间又在bug的commit前面。因此通过普通的回滚操作是无法解决的。
解决方案是这样的。
回滚到上线分支的commit,然后将对应的修复bug的文件提交。
git reset --soft e842a411df4083bbef81a3502fd7d9e558fdbcdc 版本回退,且本地保留修改(--hard,本地不保留修改)
git push origin dev1.0.7 --force 版本回退强制提交到远端
至此,已经回滚到所需分支,然后提交想要上线的文件即可。
事后反思是这样的。
目前主分支为dev1.0.7(主分支:最新上线的前端代码),hyh分支为新功能子应用版本对应分支,dev1.0.7-fix1为修复bug分支,如果上线则将对应bug分支或者新功能分支merge到线上分支。总结就是bug分支,新功能分支,上线分支(上线的分支要单独维护起来的原因就是要知道哪个是线上的前端代码,需要上线的时候再将对应的修复分支或者新功能分支合并到上线分支)
如果之前能有这样的意识,做到分支的正确管理,代码的正确提交,那么当问题出现就不会那么棘手了,因此还是要按照科学的管理git分支和代码提交呀!!!!