主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

git rm 命令

Git 基本操作


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 保留 记录删除

Git 基本操作



评论区 0
发表评论