GIT 如何删除某个本地的提交

时间:2022-10-28 06:08:40

一、rm后要commit一下才会生效,但这样只是让文件不再出现在今后的版本中,文件副本仍然会在.git/下(这样git才能让误删的文件恢复)。

要彻底消灭文件副本,那就要让文件彻底从历史中消失,分两种情况:

1、如果你的文件添加记录是最近1次,而且没有别的更改,可以简单使用reset --hard commit_id来彻底回溯,然后gc一下再上传就没问题了。

2、如果是在你N次提交以内的某次,而且同时还有别的重要提交,那最好用rebase合并一下这几次提交记录(包括rm的commit),然后再gc提交

二、撤销commit的一些方法

1、git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息

2、git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可

3、git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

三、其他一些方法

1、git revert 是撤销某次操作,此次操作之前的commit都会被保留
 
2、git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区
 

3、git reset --hard HEAD~1

4、git revert HEAD