在.gitattributes中指定dir / *不会抑制所有所需的输出

时间:2013-02-09 00:58:39

标签: git

我想要取消

中文件的所有输出
    dir/* 

使用命令时

    git diff

我决定遵循以下建议 Excluding files from git-diff

方法1。

添加到 .git / config

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

并使用

git mydiff

按预期工作,从而解决了我的问题。但是,我想使用方法2。

方法2。

添加到 .gitattributes

dir/* -diff

然后使用

git diff

生成输出

diff --git a/dir/1 b/dir/1
deleted file mode 100644
index 05e9130..0000000
...

问题 如何抑制dir /?

中所有文件的不需要的输出

1 个答案:

答案 0 :(得分:1)

您使用设置查看输出的原因是dir/* -diff仅将dir中的文件标记为二进制文件,因此文本差异不适用于它们(请参阅man 5 gitattributes)。

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

  1. 指定新的“无声”(您可以选择您的名字)差异驱动程序:

    $ cat .gitattributes 
    dir/* diff=silent
    
  2. 定义“无声”差异功能:

    $ tail -n2 .git/config
    [diff "silent"]
        command = "true"
    
  3. 这应该可以解决问题。