我正在尝试在同一个存储库中的两个文件夹之间创建一个彩色差异(这可能是完全错误的方法)。
我相信实现这一目标的一种方法是通过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。
可能性?备择方案?
您可以尝试使用assume-unchanged标志
https://git-scm.com/docs/git-update-index
当指定此标志时,为路径记录的对象名称不会更新。
相反,此选项设置/取消设置路径的“假设不变”位。当“假设不变”位打开时,用户承诺不更改文件,并允许 Git 假设工作树文件与索引中记录的内容匹配。如果你想改变工作树文件,你需要取消设置该位来告诉 Git。当在 lstat(2) 系统调用(例如 cifs)非常慢的文件系统上处理大型项目时,这有时会很有帮助。
如果 Git 需要修改索引中的此文件,例如合并提交时,它会(优雅地)失败;因此,如果假定的未跟踪文件在上游发生更改,您将需要手动处理这种情况。