web-dev-qa-db-ja.com

Git diff -wは行頭と行末でのみ空白を無視します

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

325
ma11hew28

行末使用の場合

git diff --ignore-space-at-eol

現在使用しているものではなく、

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

最初から...組み込みソリューションをご希望の場合は、運が悪くなります。

しかし、手を汚しても構わないのであれば、 " - ignore-space-at-sol"のサポートを追加する、かなり古いパッチがどこかに浮かんでいます。

これは古い質問ですが、まだ定期的に見られて/必要とされています。私のような読者の皆様には、OPの質問で言及されている空白が、正規表現の定義と同じnotであり、改行、タブ、スペース文字が含まれている - - 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 from ここ

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

1
deasserted