0

我想抑制文件的所有输出

    dir/* 

使用命令时

    git diff

我决定遵循 从 git-diff 中排除文件的建议

方法一。

添加到.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/ 中所有文件的这种不需要的输出?

4

1 回答 1

1

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

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

  1. 分配新的“沉默”(你可以选择你的名字)差异驱动程序:

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

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

这应该够了吧。

于 2013-02-09T15:33:39.267 回答