在.gittributes中指定dir/*不会';t抑制所有所需的输出

在.gittributes中指定dir/*不会';t抑制所有所需的输出,git,Git,我想抑制中文件的所有输出 dir/* 使用命令时 git diff 我决定采纳来自中国的建议 方法1。 添加到.git/config [alias] mydiff = !git diff -- $(git diff --name-only | grep -Ev "dir/") 和使用 git mydiff 工作如期进行,从而解决了我的问题。然而,我想使用方法2 方法2. 添加到.gittributes dir/* -diff 然后使用 git diff 产

我想抑制中文件的所有输出

    dir/* 
使用命令时

    git diff
我决定采纳来自中国的建议

方法1。

添加到.git/config

[alias]
    mydiff = !git diff -- $(git diff --name-only | grep -Ev "dir/")
和使用

git mydiff
工作如期进行,从而解决了我的问题。然而,我想使用方法2

方法2.

添加到.gittributes

dir/* -diff
然后使用

git diff
产生输出

diff --git a/dir/1 b/dir/1
deleted file mode 100644
index 05e9130..0000000
...
问题
如何抑制dir/?

中所有文件的这种不希望的输出您在设置中看到输出的原因是
dir/*-diff
仅将
dir
中的文件标记为二进制文件,因此文本diff将不应用于它们(请参见
5 gittributes

要抑制
dir
中文件的任何输出,必须定义如下外部差异驱动程序:

  • 分配新的“静默”(您可以选择您的名称)差异驱动程序:

    $ cat .gitattributes 
    dir/* diff=silent
    
  • 定义“静默”差异函数:

    $ tail -n2 .git/config
    [diff "silent"]
        command = "true"
    

  • 那就可以了。

    非常感谢!这对我来说是一个很好的例子,读书人是做事的正确方式。我唯一不明白的是“男人5”是什么意思——男人的第五页?如何找到它?
    man5gittributes
    明确说明使用手册页的第5部分。手册页按其类型分为多个部分:1用于可执行程序或shell命令,2用于系统调用,3用于库调用,等等。第5部分包含文件格式说明。实际上,您只需键入
    mangittributes
    即可查看同一页面,但当出现名称冲突时(即,在manpage中查找
    stat
    时,您应该知道要查找的内容:命令(1)、系统调用(2)、库函数(3)),您必须指定要查看的部分。您可以通过在标题处查找编号来判断手册页属于哪个部分。