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

如何仅查看Git中已暂存后又修改文件的新增差异?

解决方案

要仅查看已暂存后又被修改的文件差异(排除从未被暂存过的未跟踪/未暂存文件),Git本身没有直接的单参数内置命令,但可以通过组合命令实现需求,以下是两种简洁的实现方式:

方式1:组合文件列表与差异对比

git diff --cached --name-only | xargs git diff

原理说明:

  • git diff --cached --name-only:列出所有已被暂存到暂存区的文件路径
  • xargs git diff:将上述文件列表作为参数传给git diff,让Git仅对比这些文件的工作区版本和暂存区版本的差异

执行后会自动筛选出file1.sql、file4.sql这类“已暂存后又修改”的文件差异,完全排除file5.sql这类从未进入过暂存区的文件。

方式2:直接指定对比路径

写法更直观,效果与方式1一致:

git diff -- $(git diff --cached --name-only)

git diff -- <路径列表>会仅针对指定路径,对比工作区与暂存区的差异。

补充说明

  • 若想同时查看这些文件“从HEAD到暂存区”的修改(即之前暂存的内容),可以追加--cached参数:
    git diff --cached -- $(git diff --cached --name-only)
    
  • 你提到的git update-index --again是重新暂存已修改的暂存文件,对应的差异查看需求,用上述组合命令即可满足,无需额外工具。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 23:33:24