git add或commint或push后如何撤销

平常项目比较多,代码分支也比较多,很容易出现代码推送错误,撤销修改、冲突等情况。无论手动操作或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

此命令都是直接在代码编辑器里操作,无论是用什么代码管理工具提交命令操作时,都可以用此命令尝试

感谢支持,点赞,转发,后期不定时更新内容,感兴趣的小伙伴可以关注后续文章!

你可能感兴趣的:(git,github,vscode,编辑器)