-
找到需要回退的版本commit
git log 命令行列出所有commit,找到需要回退的commit
或者
idea右键项目
git -> show history
,找到列表中需要回退的commit,右键Copy Revision Number
,复制出commit -
找出commit后进行回退
git reset --hard e7d585bfecaffc885f252cea13b9801f41f075ad(这是commit,需要改成自己的)
-
回退成功, push
git push
会被拒绝, 可以强制推送git push -f
, 强制推送非常危险,确定整个小组都同意强制恢复为这个版本再做此操作。 -
注意项:如果有人已经拉取过你误操作的代码了,请强制推送后让他本地执行
2
操作,本次reset一次后,再进行pull操作,确保不会pull到你回退的版本后,但是他本地还留有之前的代码再次重新提交上来.
拓展知识:
git reset是指将当前head的内容重置,不会留log信息。
git reset HEAD filename 从暂存区中移除文件
git reset –hard HEAD~3 会将最新的3次提交全部重置,就像没有提交过一样。
git reset –hard commit (38679ed709fd0a3767b79b93d0fba5bb8dd235f8) 回退到 38679ed709fd0a3767b79b93d0fba5bb8dd235f8 版本
根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容