web-dev-qa-db-ja.com

git-diffでスペースとタブを表示する方法

Git-diffで次の出力があります。

- // sort list based on value    
+ // sort list based on value

行末で削除されたタブ/スペースの数を簡単に確認するにはどうすればよいですか?

36
Nico

注:Git 2.5+(2015年第2四半期)では、空白検出のためのより具体的なオプションが提案されます。

commits 0e383e1ad782f 、および d55ef3e [2015年5月26日] by Junio C Hamano(gitster
Junio in commit 709cd91 、2015年6月11日)

diff.c--ws-error-highlight=<kind>オプション

従来は、新しい行で導入される空白の破損のみを考慮していました。
一部の人々は、古い行にも空白の破損をペイントしたいと考えています。新しい行で空白の破損が見られる場合、対応する古い行で同じ種類の空白の破損を見つけて、「ああ、それらの破損はそこにありますが、元のものから継承されているので、触れないでください」今。」

--ws-error-highlight=<kind>オプションを導入すると、oldnew、およびcontextのコンマ区切りリストを渡して、空白エラーを強調表示する行を指定できます。

ドキュメントは現在含まれています

--ws-error-highlight=<kind>

<kind>で指定された行の空白エラーを、color.diff.whitespaceで指定された色で強調表示します。
<kind>は、oldnewcontextのコンマ区切りリストです。
このオプションを指定しないと、new行の空白エラーのみが強調表示されます。

例えば。 --ws-error-highlight=new,oldは、削除された行と追加された行の両方で空白エラーを強調表示します。
allは、old,new,contextの省略形として使用できます。

たとえば、古いコミットには1つの空白エラー(bbb)がありましたが、新しいエラーのみに集中できます。

old and new shitespace errors

(テストは t/t4015-diff-whitespace.sh の後に行われます)


Git 2.11+の更新(2016年第4四半期、1年半後):

git config diff.wsErrorHighlight [old,new,context]

git diff/log --ws-error-highlight=<kind>には、デフォルトで設定するための対応する構成変数がありませんでした。これはGit 2.11で追加されました。

commit 0b4b42ecommit 077965fcommit f3f5c7f (2016年10月4日)by Junio C Hamano(gitster
浜野潤二-gitster- in commit e5272d 、2016年10月26日)

31
VonC

私は複数のオプションを考えることができます:

  • 色を使用するようにGitを構成します:git config --global color.ui true。行末の空白が赤で強調表示されるようになりました。

  • git diffの出力をcatにパイプします:git diff | cat -A-Aフラグは、catに印刷不可能な文字を表示するように指示します(例:タブの^I)。

11
knittl