IDEA及gitlab 进行回滚
一、场景
本地提交了代码到master,并推送到主分支了。需要回滚到具体的某个节点。本篇博客主要是讲诉该场景的处理方案。
二、环境
软件 | 版本 |
---|---|
idea | 2021.1.3 |
gitlab |
三、操作步骤
1、本地回滚
如果是idea可视化操作,可以直接切换到git log框,选中分支,然后再右键选择的commit信息,选择 Reset current branch to to Here
,如图:
然后根据实际情况,选择回滚操作。一般是以下操作:
hard
模式则会抛弃当前工作区的修改;
而soft模式则是:回退到之前的版本,但保留当前工作区的修改,可以重新提交。
如果是命令模式,则按照以下命令:
# 查看提交日志
git log
如上图,红框就是版本号。
然后找到要回滚的版本号,进行回滚的时候,执行以下命令:
git reset --hard <版本号>
或
git reset --soft <版本号>
至此,本地回滚部分已经完成。那假如之前的东西已经提交到远端,则需要按照第二步执行。
2、gitlab远端回滚
执行以下命令:
git push origin <分支名>
在执行上述命令的时候,可能会提示本地的版本落后于远端的版本,导致提交失败。因此我们还需要在上述命令中加上–force参数:
git push origin <分支名> --force
3、问题
强制提交报错,提示如下:
service>git push origin master --force
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 service.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'service.git'
这个是因为gitlab对分支的保护,所以,需要先去掉对分支的保护,提交之后,再加入保护。如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人