平常项目比较多,代码分支也比较多,很容易出现代码推送错误,撤销修改、冲突等情况。无论手动操作或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
此命令都是直接在代码编辑器里操作,无论是用什么代码管理工具提交命令操作时,都可以用此命令尝试
感谢支持,点赞,转发,后期不定时更新内容,感兴趣的小伙伴可以关注后续文章!
版权归原作者 掉发又脱发的猿 所有, 如有侵权,请联系我们删除。