git 版本回退
Posted weixin_42412601
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git 版本回退相关的知识,希望对你有一定的参考价值。
目录
已提交,没有push的情况,回滚
本地commit
了一次,我想把它回滚,怎么做?
git status
查看本地有一个commit
git log
获取commit
版本号(q退出)
也可以使用这种方式获取需要回滚的版本号
回滚:
git reset --soft 撤销commit,但不会撤销add
git reset --mixed 撤销commit,也撤销add
git reset --soft 5a8978722ca3bc8d2225ccae7a1cce976b4cfccc
git status
上也显示,无commit
了
已提交,并且push的情况,回滚
方式一: git reset
git reset --hard 撤销并舍弃指定的版本号之后的提交记录。使用需要谨慎。
注意:是版本号之后的所有提交记录,谨慎用!
例:test02已经push,我想回退到test01
PS D:\\project\\parent> git reset --hard fedadc2efcf639da22631c60ae706b8fad389ea1
HEAD is now at fedadc2 test01
然后需要push到远程分支,但是直接git push, 是会报错的,因为本地版本落后于远程,需要强制push
强制push(git push -f),然后查看本地和远程分支,test03都没了,版本回退到test02
这种强制提交,如果使用的是gitlab, 权限不是maintainer, 提交也会失败,需要找管理员提交。
注意:这种方式会把提交的代码直接舍弃,非常不建议使用!
idea上的快捷操作方式
然后再强制push
方式二: git revert
git revert 撤销。但是保留了提交记录。并且他是移除指定的提交。
获取需要回退的版本号,注意这里和上面的不一样,上面的是回退到之前的某一个版本,现在是撤销当前的版本
git revert 366f8c73e74ad43f892b30eefd0f1b9de1177e20
,键盘i,进入编辑状态,改一下提交的名称,键盘Esc,冒号wq,回车,就ok了
然后再git push
到远程分支,即可。
这种方式可以只回退某一个版本,并且回退之后,还会保留之前版本的记录。推荐
以上是关于git 版本回退的主要内容,如果未能解决你的问题,请参考以下文章