Git实用教程 6.1:删除文件

本文介绍在Git中删除文件的多种方法,包括如何正确删除工作目录和暂存区域的文件,以及如何撤销错误的删除操作。文章详细解释了rm命令的使用场景,并提供了处理不同文件状态的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二个小技巧就是删除文件

“自从使用了 Git,妈妈再也不用担心我删错文件了!”—— 一个文件只要被 Git 盯上了,那么它就休想轻易地逃出魔掌!

比如我现在从工作目录中手动删除 README.md 文件,然后执行 git status 命令:

Git 马上意识到哪里不对劲,赶紧对比一下暂存区域……噢,原来你小子偷偷地把 README.md 删除了丫!哼,还想瞒天过海? 

Git 同时提醒使用 checkout 命令可以将暂存区域的文件恢复到工作目录:

看,README.md 又回来了:

那现在问题来了:如何在 Git 中删除文件呢?

假如你不小心把 私密文件 下载到了工作目录,然后又不小心提交到了 Git 仓库:

这下肿么办?让老板看到了这鱿鱼就吃定了……

这时,祭出了 rm 命令救你于水深火热之中!

执行 git rm 私密图.jpg 命令:

你会发现此时工作目录中的小黄图(yellow.jpg)已经被删除……



但执行 git status 命令,你仍然发现 Git 还肯松手:

(⊙o⊙) Git 的意思是说它在仓库的快照中发现有个叫 私密图.jpg 的东西,但似乎在暂存区域和当前目录不见了!

好吧,事实证明要从 Git 中真正删除一个文件是件非常麻烦的事儿!

此时,你可以执行 git reset --soft HEAD~ 命令将快照回滚到上一个位置,然后重新提交,Git 就不会再提 私密图 的事儿了:

注意:rm 命令删除的只是工作目录和暂存区域的文件(即取消跟踪,在下次提交时不纳入版本管理)

你们别嫌我啰嗦,还有两种情况你们可能会遇到,比如我在工作目录中增加一个 test.py 文件,然后执行 git add test.py 命令将其添加到暂存区域,此时我修改 test.py 文件的内容,那么暂存区域和工作目录就是两个不同的 test.py 文件了:

此时如果我执行 git rm test.py 命令,Git 会下意识地阻止我:

因为两个不同内容的同名文件,谁知道你是不是搞清楚了都要删掉?还是提醒一下好,别等一下出错了又要赖机器……

根据提示,执行 git rm -f test.py 命令(暴力删除)就可以把两个都删除。

还有另一种情况就是你可能只想删除暂存区域的文件(保留工作目录的),那么你可以执行 git rm --cached 文件名 命令实现目的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值