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

如何让git diff跨用户目录对比时仅查看已追踪文件?

问题

使用git diff tag1 tag2时,只会对比Git仓库内已追踪文件的变更;但如果用git diff ~usera/my_dir1 ~userb/my_dir2对比两个独立Git仓库的目录(二者的.git目录相互独立、不共享),这个命令会包含两个目录中的所有未追踪文件。请问是否有参数或选项能让后者的行为和前者一致,仅对比已追踪文件里未提交的变更?

现有临时解决方案

目前有一个不够完善的临时处理脚本,核心思路是先提取两个仓库的已追踪文件列表,再逐个对比这些文件的差异:

parallel 'cd {} && git ls-files' ::: $dirA $dirB | sort -u |
  parallel diff -Naur $dirA/{} $dirB/{} | less

脚本的执行逻辑:

  • 通过git ls-files分别获取两个目标目录下Git已追踪的文件清单
  • 对两个清单合并后去重,得到需要对比的文件集合
  • 用diff -Naur命令逐个对比两个目录中对应文件的差异,最后通过less分页查看结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 03:59:52