You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据文件修改类型使用git add/git rm暂存或取消暂存文件

Git按文件修改类型执行暂存/取消暂存操作方案

Git原生支持按修改类型筛选文件执行暂存、取消暂存操作,核心通过内置的文件状态过滤能力实现,无需安装额外工具,各场景操作命令如下:


1. 已删除文件操作

  • 暂存所有已删除的跟踪文件:
    git ls-files --deleted | xargs git add
  • 取消暂存所有已暂存的删除文件:
    git diff --cached --name-only --diff-filter=D | xargs git reset HEAD

2. 新增未跟踪文件操作

  • 暂存所有新增未跟踪文件(自动忽略.gitignore规则匹配的文件):
    git ls-files --others --exclude-standard | xargs git add
  • 取消暂存所有已暂存的新增文件:
    git diff --cached --name-only --diff-filter=A | xargs git reset HEAD

3. 已修改跟踪文件操作

  • 暂存所有已修改的跟踪文件(不含删除、新增文件):
    git diff --name-only --diff-filter=M | xargs git add
  • 取消暂存所有已暂存的修改文件:
    git diff --cached --name-only --diff-filter=M | xargs git reset HEAD

4. 重命名文件操作

  • 暂存所有已识别的重命名文件:
    git diff --name-only --diff-filter=R | xargs git add
  • 取消暂存所有已暂存的重命名文件:
    git diff --cached --name-only --diff-filter=R | xargs git reset HEAD

补充说明:

  1. 无xargs的Windows环境可替换为对应语法,比如PowerShell下用git ls-files --deleted | ForEach-Object { git add $_ }实现同等效果
  2. --diff-filter参数支持多类型组合,比如需同时筛选修改和删除文件时,替换为--diff-filter=MD即可

内容的提问来源于stack exchange,提问作者eshirvana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:15:07