一、Undo Commit
某次在idea中执行commit后(未push), 发现提交代码错误了想撤回。适用于代码修改完了,已经commit,但是还未push,但是commit里面的有提交错误的代码,这时候可以使用Undo commit,修改后再commit。
commit提交了一次测试记录(未push),新增了代码。(如下图)
Undo Commit后之前提交的记录就不见了。
二、reset current branch to here
这个和第一个的效果是一样的。(适用于已commit,但是还没有push的)
这里是选择哪次提交的记录,就直接操作当前选中的信息。
1.Soft:回滚到指定版本,并保留所有更改,这些更改将被重新提交。使用这种模式,你可以撤销已经提交的更改,然后重新提交。
2.Mixed:回滚到指定版本,并保留所有更改,但是更改将不会被重新提交(文件进入到Unversioned Files中)。使用这种模式,你可以撤销已经提交的更改,并保留这些更改,以备后续修改和提交。
3.Hard:回滚到指定版本,并删除指定版本之后的所有更改。使用这种模式,你可以完全撤销指定版本之后的所有更改。
4.Keep:回滚到指定版本,但是保留指定版本之后的更改。使用这种模式,你可以撤销指定版本之后的更改,并保留这些更改,以备后续修改和提交。
结果
三、Reset HEAD
注意:此退回是不管你commit没push,还是commit已经push好了,都会退回到你指定的版本号。
1.选择对应提交的记录右击——Copy Revision Number ; 复制commit的编号
2.回退到对应的版本
3.输入第一步复制的commit编号
这个的Reset Type有三个可选参数:
1.mixed:默认方式,不删除工作空间改动代码,
撤销commit
和
撤销git add
操作,回退到工作区。
2.soft:回退到某个版本,不删除工作空间改动代码,
撤销commit
,
不撤销git add
操作,回退到git commit之前,此时处在暂存区。(即执行git add 命令后)
3.hard:彻底回退,撤销commit和add 删除本地改动的代码。(修改的代码内容会全部丢失,直接退回到某个版本,需要谨慎使用)
这是已经push过的代码。
在To Commit中的HEAD后面加上^,Reset Type选择默认方式,点击Reset即可撤回最近一次的尚未push的commit
执行后的结果。
4.push回退的代码(IDEA下方选择Terminal——命令行输入git push -f ;强行推送到远程仓库)
一定要执行这个命令,现在删除的还是本地的,仓库里面的还没有进行改动!!没有强推的话下次拉取还是会把之前的代码拉下来的。
5.完成后的结果
版权归原作者 你还有牵挂吗 所有, 如有侵权,请联系我们删除。