0

内のファイルのすべての出力を抑制したい

    dir/* 

コマンドを使用する場合

    git diff

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/内のすべてのファイルに対してこの望ましくない出力を抑制する方法は?

4

1 に答える 1

1

設定を含む出力が表示される理由は、ファイルをバイナリ ファイルとしてdir/* -diffのみマークするdirためです。そのため、テキスト diff は適用されません (「 」を参照man 5 gitattributes)。

ファイルの出力を抑制するには、dir次のように外部差分ドライバーを定義する必要があります。

  1. 新しい「サイレント」(名前を選択できます) diff ドライバーを割り当てます。

    $ cat .gitattributes 
    dir/* diff=silent
    
  2. 「サイレント」差分関数を定義します。

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

これでうまくいくはずです。

于 2013-02-09T15:33:39.267 に答える