最近使用gitlab用jenkins发布生产版本时, 出现了开发版本没有问题,但发布生产版本出现问题的现象,所以需要进行及时回滚之前的版本。
问题产生原因: 提交了有问题的版本到远程库。
以下是解决的方法, 供大家参考:
1.对本地代码库进行回滚
git log 查看提交历史,找出要回滚到的commit-id git reset --hard commit-id :回滚到commit-id git reset --hard HEAD~3:将最近3次的提交回滚
也可以在gitlab上面进行赋值commit-id
如下操作:
F:\opt\nbcio-vue>git reset --hard 7172cef873db7e266cfdd1142800ea4f6fbe6b5b
HEAD is now at 7172cef 支持并发网关与签收功能
上面本地已经恢复到上一版本的id了
F:\opt\nbcio-vue>git push -u http://192.168.2.118:8088/lvqiyong/nbcio-vue.git master -f
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To http://192.168.2.118:8088/lvqiyong/nbcio-vue.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'http://192.168.2.118:8088/lvqiyong/nbcio-vue.git'
但强推远程库的时候失败,主要原因是远程库是master分支,系统配置受保护
在分支界面上点击上方的 project settings(项目设置)
上面可以unprotect,先暂时去掉保护
这样可以进行回滚了
F:\opt\nbcio-vue>git push -u http://192.168.2.118:8088/lvqiyong/nbcio-vue.git master -f
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To http://192.168.2.118:8088/lvqiyong/nbcio-vue.git
+ fca60a3...7172cef master -> master (forced update)
Branch 'master' set up to track remote branch 'master' from 'http://192.168.2.118:8088/lvqiyong/nbcio-vue.git'.
F:\opt\nbcio-vue>
回滚完后再把保护恢复回去。
如有问题,欢迎交流。