git rm 命令
git rm
命令用于从工作区和暂存区(index)中删除文件,同时会将删除操作记录到暂存区,以便后续提交到版本库。
执行git rm
命令后,需要通过git commit
将删除操作提交到版本库,完成最终的删除记录。
基本用法
1. 删除文件
使用git rm
命令可以删除工作区中的文件,并将删除操作记录到暂存区:
git rm <文件名>
下面实例从暂存区和工作区中删除kaicz.txt
文件:
git rm kaicz.txt
2. 仅从暂存区删除,保留工作区文件
如果希望仅从暂存区删除文件,但保留工作区中的文件,可以使用--cached
选项:
git rm --cached <文件名>
下面实例从暂存区删除kaicz.txt
文件,但保留工作区中的文件:
git rm --cached kaicz.txt
3. 强制删除
如果文件已被修改或未保存,可以使用-f
选项强制删除:
git rm -f <文件名>
下面实例强制从暂存区和工作区中删除kaicz.txt
文件:
git rm -f kaicz.txt
4. 删除目录
如果需要删除整个目录及其内容,可以使用-r
选项(递归删除):
git rm -r <目录名>
下面实例从暂存区和工作区中删除kaicz
目录及其所有内容:
git rm -r kaicz/
5. 删除多个匹配的文件
如果需要删除多个匹配的文件,可以使用通配符(如*.log
):
git rm *.log
下面实例从暂存区和工作区中删除所有以.log
结尾的文件:
git rm *.log
6. 删除前预览
如果希望在删除前预览将要删除的文件,可以使用-n
选项(dry-run):
git rm -n *.bak
下面实例预览将要删除的所有以.bak
结尾的文件:
git rm -n *.bak
实战场景
1. 误添加敏感文件
如果不小心将敏感文件(如配置文件)添加到版本控制中,可以使用git rm --cached
命令停止跟踪该文件,但保留本地文件:
# 1. 将敏感文件加入.gitignore
echo "config.ini" >> .gitignore
# 2. 从版本控制移除但保留本地文件
git rm --cached config.ini
# 3. 提交变更
git commit -m "停止跟踪 config.ini 文件"
2. 清理项目中的临时文件
如果需要清理项目中的所有临时文件(如*.tmp
),可以使用git rm
命令:
# 1. 删除所有.tmp文件
git rm *.tmp
# 2. 确认删除操作
git status
# 3. 提交变更
git commit -m "清理所有临时文件"
恢复误删
如果误删了文件,可以使用以下命令恢复:
# 恢复工作区文件
git checkout HEAD -- <file>
# 查看删除历史
git log --diff-filter=D --summary
# 恢复特定版本的文件
git checkout <commit_hash>^ -- <filename>
与普通 rm 命令对比
操作 | 命令 | 工作目录 | 暂存区 | 需要提交 |
---|---|---|---|---|
仅删除文件 | rm file |
删除 | 不变 | 否 |
删除并记录 | git rm file |
删除 | 记录删除 | 是 |
仅停止跟踪 | git rm --cached file |
保留 | 记录删除 | 是 |
评论区 0
发表评论
教程介绍
Git 是一个分布式版本控制系统,用于高效管理文件的修改历史,支持多人协作开发。
37
章节
52
阅读
0
评论
反馈提交成功
感谢您的反馈,我们将尽快处理您的反馈