idea中如何将git已经push的文件进行回退

一不小心将另一个工作空间的代码push到gitLab,抽抽了一下 ,赶紧回退版本,记录如下:
回退版本,需要回退的地方:本地工作空间、本地仓库以及远程仓库,一般有两种方法:

1、bash命令回退

step1:cd进入本地工作空间,打开bash窗口,查看提交日志git log,复制commitId
idea中如何将git已经push的文件进行回退_第1张图片
小知识:输入git log后,点击enter键可以查看未显示的历史日志;切换退出输入英文q;

step2:回退到指定版本,git reset --hard e55版本号,此处是将本地工作空间以及本地仓库回退
稳一手:回退之后,输入git status命令,可以看到“nothing to commit。。。。。”
idea中如何将git已经push的文件进行回退_第2张图片
step3:通过强制提交命令将当前版本提交,效果等同于将要回退的版本e55之后的提交记录抹杀掉,谨慎使用!!!!
命令:git push origin dev(要回退的分支) --force 或者 git push -f
idea中如何将git已经push的文件进行回退_第3张图片
step4:最后登录gitLab确认一下,可以看到回退成功,而不是在错误版本后再次提交记录
idea中如何将git已经push的文件进行回退_第4张图片
ok,可以擦汗喝水了。

成功之后补充一些细节:

回退版本一般使用git reset,又分为:

# 不删除工作空间改动代码,撤销commit,不撤销git add .
git reset --soft xxx-版本号-xxxx 
 
# 删除工作空间改动代码,撤销commit,撤销git add . 注意完成这个操作后,就恢复到了上一次的commit状态。
git reset --hard xxx-版本号-xxxx 

--------邪恶分割线-------
git reset --soft 表示只是改变了HEAD的指向,本地代码不会变化,我们使用git status依然可以看到,同时也可以git commit提交。
git reset --hard后者直接回改变本地源码,不仅仅指向变化了,代码也回到了那个版本时的代码,所以使用是一定要小心,想清楚。

平常的操作都会产生commits,输入git reflog可以看到HEAD指向了e55版本(本地仓库回退),同事改变本地源码(工作空间回退),所以使用时一定要记清楚,不然前功尽弃,悔之晚矣!!!!
idea中如何将git已经push的文件进行回退_第5张图片

2、idea + bash命令

step1:从历史提交记录中寻找commtId
idea中如何将git已经push的文件进行回退_第6张图片
step2:调出Reset head弹窗
项目右键-git-Repository-reset head
选择hard 类型,粘贴commitId,最后点击Reset。
idea中如何将git已经push的文件进行回退_第7张图片
step3:强制提交
在idea命令窗口输入命令
命令:git push origin dev(要回退的分支) --force 或者 git push -f

完事!!

你可能感兴趣的:(IDEA,git,bash)