git rm

文章目录

  • [1. 简介](#1. 简介)
  • [2. 格式](#2. 格式)
  • [3. 选项](#3. 选项)
  • [4. 示例](#4. 示例)
    • [4.1 删除单个文件](#4.1 删除单个文件)
    • [4.2 递归删除目录](#4.2 递归删除目录)
    • [4.3 仅从仓库删除,保留工作区文件](#4.3 仅从仓库删除,保留工作区文件)
    • [4.4 强制删除(忽略本地修改)](#4.4 强制删除(忽略本地修改))
    • [4.5 批量删除特定类型文件](#4.5 批量删除特定类型文件)
    • [4.6 模拟执行(查看将要删除的文件)](#4.6 模拟执行(查看将要删除的文件))
  • [5. 其他](#5. 其他)
    • [5.1 `git rm` vs 普通 `rm` 的区别](#5.1 git rm vs 普通 rm 的区别)
    • [5.2 误删除后如何恢复](#5.2 误删除后如何恢复)
    • [5.3 常用别名设置](#5.3 常用别名设置)
  • [6. 小结](#6. 小结)
  • 参考文献

1. 简介

git rm 命令用于从 Git 仓库和工作区中同时删除文件。它会将删除操作记录下来,等待下一次提交。

与直接使用 rm 命令删除文件不同,git rm 会同时更新暂存区,省去了 git add 的步骤。

注意,git rm 无法删除未受版本控制的文件(untracked file)。

2. 格式

bash 复制代码
git rm [<options>] [--] [<pathspec>...​]

3. 选项

bash 复制代码
-f, --force
  强制删除(即使文件有本地修改)
-r
  递归删除目录及其内容
--cached
  仅从暂存区和版本库中删除,保留工作区文件。可用于文件脱离版本控制
-n, --dry-run
  模拟执行,显示哪些文件会被删除,但不实际删除
--ignore-unmatch
  如果匹配不到文件也不报错
-q, --quiet
  静默模式,不输出删除信息

4. 示例

4.1 删除单个文件

bash 复制代码
# 删除 README.md
git rm README.md

4.2 递归删除目录

bash 复制代码
# 删除 utils 目录及其所有内容
git rm -r utils/

4.3 仅从仓库删除,保留工作区文件

bash 复制代码
# 删除版本库中的 config.env,但保留本地文件(常用于误提交的配置文件)
git rm --cached config.env

4.4 强制删除(忽略本地修改)

bash 复制代码
# 文件有本地修改但仍要删除
git rm -f main.go

4.5 批量删除特定类型文件

bash 复制代码
# 删除所有 .log 文件
git rm *.log

# 递归删除所有 .tmp 文件
# \*.tmp 解释为字面量 *.tmp 传递给 git rm。
# Git 收到参数 *.tmp 后,会自己进行通配符匹配,在索引(暂存区)中查找所有 .tmp 文件并删除。
git rm \*.tmp --cached

4.6 模拟执行(查看将要删除的文件)

bash 复制代码
# 预览哪些文件会被删除
git rm --dry-run *.log

5. 其他

5.1 git rm vs 普通 rm 的区别

操作 工作区 暂存区 是否需要 git add
rm file 删除 仍存在(显示 deleted) ✅ 需要 git add 才能提交删除
git rm file 删除 已删除 ❌ 直接 git commit 即可

5.2 误删除后如何恢复

bash 复制代码
# 误执行 git rm 后,可以从 HEAD 恢复
git reset HEAD file
git checkout -- file

# 或者使用 restore(Git 2.23+)
git restore --source=HEAD file

5.3 常用别名设置

bash 复制代码
git config --global alias.rmc "rm --cached"
git config --global alias.rmr "rm -r"

# 使用别名
git rmc config.env
git rmr old-module/

6. 小结

需求 命令 说明
删除文件(工作区+仓库) git rm file 同时删除,直接提交
递归删除目录 git rm -r dir/ 删除目录及其所有内容
只删仓库,保留工作区 git rm --cached file 适用于误提交的配置文件
强制删除 git rm -f file 忽略本地修改,强制删除
预览删除 git rm --dry-run file 模拟执行,不实际删除

一句话总结git rm 是 Git 中的删除命令,它会同时更新工作区和暂存区。需要保留本地文件时用 --cached;误删除后可从 HEAD 恢复。养成删除前用 --dry-run 预览的习惯,避免意外删除。


参考文献

Git - git-rm Documentation

相关推荐
是宇写的啊12 小时前
Git远程操作
git
our_times20 小时前
# Git 高频命令实战指南:从日常开发到进阶协作
git
PBitW21 小时前
git 中容易遗忘的点 (二) ⚡⚡⚡
前端·git·面试
PBitW21 小时前
git 中容易遗忘的点 (三) 🚀🚀🚀
前端·git·面试
郑州光合科技余经理1 天前
家政预约小程序后端源码深度剖析:支付回调实战
java·开发语言·前端·git·小程序·架构·php
北极糊的狐1 天前
钉钉小程序 Git 版本管理完整流程
git·小程序·钉钉
Fzuim1 天前
当 AI 也成为提交者:ThinkFlow 的 Git 提交规范,是怎么定的
git·agent·thinkflow
CodexDave2 天前
数据库连接池耗尽:排查顺序与三层兜底
服务器·前端·数据库·git·云原生·容器·kubernetes
乐观的Terry2 天前
5、发布系统-Git 集成
大数据·git·elasticsearch
不怕犯错,就怕不做2 天前
GIT的简单打patch应用format-patch and git am
linux·git·全文检索