有些时候,当我们提交代码到本地后,突然发现因为某些原因需要撤销提交本地的代码。
就比如我,因为代码写错了分支,已经提交到本地了,而我需要取消,并且还要把代码搞得另外的分支上。
提交前:
(可以看到提交到本地的记录)
进行撤销操作:
(本次为撤回上一次的本地提交)
git reset HEAD~1
撤回代码(3种):
方式1:
git reset --soft HEAD^
表示不删除工作空间代码,撤销commit,保留git add .操作
HEAD^ 表示回到上一个版本(在push之前你可能有多次commit),也可以写成HEAD~1
有两次提交本地记录就把HEAD~1改成HEAD~2就可以了。
方式2:
git reset --mixed HEAD^
表示不删除改动过的代码,撤销commit,并且撤销git add . 操作,
这个为默认参数(git reset --mixed HEAD^和git reset HEAD^操作效果一样)
方式3:
git reset --hard HEAD^
表示删除工作空间代码,撤销commit,撤销git add .操作,
在完成这个操作之后恢复到上一次commit的状态
!!!!!!!!!!(有改动的代码没了)!!!!!!!!!!
以下问题应以电脑,软件,分支而异:
以下是我个人的操作,不喜勿喷,不想进行其他操作了,简单粗暴
写错的分支为dev分支,而我本来是需要写在dev的版本分支上的
我用的较多的是vscode,但是切换分支必须提交本地才能切换,不然会报错且无法切换分支。
用IJ打开代码文件,原代码不要搞到暂存区和本地,直接切换分支,改动的覆盖即可。
这样操作可以让写错分支的代码搞到需要的分支上。