撤销git

平常项目比较多,代码分支也比较多,很容易出现代码推送错误,撤销修改、冲突等情况。无论手动操作或vscode左上角源代码管理或者使用SourceTree工具,都难免会发生。解决场景如下:

add .

命令:git reset HEAD

一般这种比较容易,此时代码还没commit时可以在编辑器上看到,也可以直接手动撤销

commit

commit时,编辑器上是看不到你修改提交的代码,此时处于待推送隐藏状态,但未进行push推送命令,想撤销:

命令:git reset --soft HEAD^ 这样就成功撤销了commit。此时代码回到了commit前的状态,可以对代码进行增删改查。

也可以解决代码冲突:远程分支代码未pull拉取,直接push的,结果就是推不上去,会有冲突提示,此时应该撤销代码,拉取远程代码后,再进行操作

有人好奇,为什么加此命令就这么神奇,到底做了什么操作???

其实HEAD^ 表示上一个版本,即上一次的commit,几个代表几次提交,如果回滚两次就是HEAD^。

--soft

意思是不删除工作空间的改动代码 ,撤销commit,不撤销add

此时有小伙伴问了,我想连add状态也一起都撤销呢,当然也有办法~

命令:使用git reset --hard HEAD^ 这样连add也撤销了。

--hard

意思是删除工作空间的改动代码,撤销commit且撤销add

顺便还有一个常遇到的情况

如果commit后面的注释写错了,先别急着撤销!!!,可以运行git commit --amend

进入vim编辑模式,修改一下注释信息就可以了

push到远端
切换到指定分支 git checkout 分支名

撤回到需要的版本 git reset --soft 需要回退到的版本号(git log命令出来就看到每条提交的记录commit后面一串数字加字母组合)

提交撤销动作到服务器,强制提交当前版本号

git push origin 分支名 --force

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容