rm&git rm&git rm --cached&删除已commit

太久没有发博客了,来刷一下存在感

git rm

同时从工作区和暂存区删除文件,即本地的文件也被删除了,会保留操作记录。

**注意:**最后要执行git commit才真正提交到git仓库

如果要删除之前修改过或已经放到暂存区的文件,则必须使用强制删除选项 -f(译注:即 force 的首字母)。 这是一种安全特性,用于防止误删尚未添加到快照的数据,这样的数据不能被 Git 恢复。

git rm --cached

从暂存区中删除文件。但是本地文件还存在, 只是不希望这个文件被版本控制。

rm

就是单纯地删除了物理文件。

即使已经通过 rm 将某个文件删除掉了,也可以再通过 git rm 命令重新将该文件从 git 的记录中删除掉。同样也是需要git commit

如果用 rm 命令删除了大量文件,再逐个用 git rm就显得麻烦了,这时候可以用 git commit -am "abc"

删除错误提交的commit

有时,不仅添加到了暂存区,而且commit到了版本库,这个时候就不能使用git rm了,需要使用git reset命令。

错误提交到了版本库,此时无论工作区、暂存区,还是版本库,这三者的内容都是一样的,所以在这种情况下,只是删除了工作区和暂存区的文件,下一次用该版本库回滚那个误添加的文件还会重新生成。

这个时候,我们必须撤销版本库的修改才能解决问题!

git reset有三个选项,–hard、–mixed、–soft。

//仅仅只是撤销已提交的版本库,不会修改暂存区和工作区
git reset --soft 版本库ID
//仅仅只是撤销已提交的版本库和暂存区,不会修改工作区
git reset --mixed 版本库ID
//彻底将工作区、暂存区和版本库记录恢复到指定的版本库
git reset --hard 版本库ID

(1)如果你是在提交了后,对工作区的代码做了修改,并且想保留这些修改,那么可以使用git reset --mixed 版本库ID,注意这个版本库ID应该不是你刚刚提交的版本库ID,而是刚刚提交版本库的上一个版本库

(2)如果不想保留这些修改,可以直接使用彻底的恢复命令,git reset --hard 版本库ID。

(3)为什么不使用–soft呢,因为它只是恢复了版本库,暂存区仍然存在你错误提交的文件索引,还需要进一步使用上述提到的git rm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值