如何忽略 git diff --no-index 上的目录?

che*_*ish 11 git git-diff

我正在尝试在同一个存储库中的两个文件夹之间创建一个彩色差异(这可能是完全错误的方法)。

我相信实现这一目标的一种方法是通过git diff --no-index folder1 folder2它会自动为您创建一个补丁(酷)。

然而,差异也包括(正如人们所期望的)所有的.gitignore'd 文件。

folder1
  node_modules
  src/
  .gitignore
  package.json
  README.md

folder2
  node_modules
  src/
  .gitignore
  package.json
  README.md
Run Code Online (Sandbox Code Playgroud)

我想无视node_modules

可能性?备择方案?

Cod*_*ard 0

您可以尝试使用assume-unchanged标志
https://git-scm.com/docs/git-update-index

--[no-]假设不变

当指定此标志时,为路径记录的对象名称不会更新。
相反,此选项设置/取消设置路径的“假设不变”位。

当“假设不变”位打开时,用户承诺不更改文件,并允许 Git 假设工作树文件与索引中记录的内容匹配。如果你想改变工作树文件,你需要取消设置该位来告诉 Git。当在 lstat(2) 系统调用(例如 cifs)非常慢的文件系统上处理大型项目时,这有时会很有帮助。

如果 Git 需要修改索引中的此文件,例如合并提交时,它会(优雅地)失败;因此,如果假定的未跟踪文件在上游发生更改,您将需要手动处理这种情况。

在此输入图像描述

  • 我不太明白如何将其与 diff 结合使用和/或替换? (2认同)