Git diff -w行の最初と最後でのみ空白を無視する


367

git diff -w空白の違いを無視するのに使うのが大好きです。しかし、私はそれが行の真ん中の空白の違いさえも無視することに気づきました。行の先頭(^)または末尾($)にある空白の違いのみを無視するにはどうすればよいですか?


31
git diff -b代わりに使用を検討しましたか?
JonasByström2013年

5
「-b --ignore-space-change空白の量の変更を無視します。これにより、行末の空白は無視され、1つ以上の空白文字の他のすべてのシーケンスは同等であると見なされます。」
mowwwalker

回答:


451

行末使用の場合:

git diff --ignore-space-at-eol

現在使用しているものの代わりに:

git diff -w (--ignore-all-space)

はじめに...組み込みのソリューションが必要な場合は、運が悪いです。

ただし、手を汚してもかまわない場合は、「-ignore-space-at-sol」のサポートを追加するかなり古いパッチがどこかに浮かんでいます。


ありがとうございます。ただし、外部ツールへの差分を構成した場合は機能しません。
adardesign 2013年

@adardesign、おそらく外部ツールで設定する必要があると思います。空白を変更せずにgitが差分を表示するためにできることがあるかどうかはわかりませんが、間違っている可能性があります。gitはかなり強力です...
ジョニー

デフォルトで設定しておくと便利です。-wまたは-bまたは--ignore-all-spaceを意味します。stackoverflow.com/questions/7310033/…で
Artyom 2013年

8
-wは「abc def」と「abcdef」を同じように扱うため、-bの提案に同意します。
Richard Wiseman、

3

これは古い質問ですが、まだ定期的に表示/必要です。私のような読者に、OPの質問で述べられている空白は正規表現の定義と同じではなく、改行、タブ、スペース文字を含めるように警告します-Gitは明示的に要求します。ここでいくつかのオプションを参照してください:https : //git-scm.com/book/en/v2/Customizing-Git-Git-Configuration

述べられ、git diff -bまたはgit diff --ignore-space-changeラインの両端にスペースを無視します。その設定をデフォルトの動作にしたい場合は、次の行で.gitconfigファイルにその意図を追加するので、行末のスペースは常に無視されます。

git config --global core.whitespace trailing-space

私の場合、「キャリッジリターンの空白の違い」を無視することに興味があったので、この質問を見つけました。

git diff --ignore-cr-at-eolまたは ここgit config --global core.whitespace cr-at-eolから。

--globalパラメーターを省略し、そのリポジトリの設定ファイルをチェックインすることで、そのリポジトリのみのデフォルトにすることもできます。私が直面したCRの問題については、.gitconfigファイルの[core]セクションでwarncrlfまたはautocrlf = trueの場合、チェックイン後に解消されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.