web-dev-qa-db-ja.com

git diff --ignore-space-changeをデフォルトにする方法

おそらくエイリアスを設定できますが、これを設定ファイルのオプションとして設定できるように思えますが、どうしてもそれを行う方法がわかりません。

--ignore-space-change diffを実行しているとき、applyなどを実行しているときではありません。私は、実際の変更がない外部の+/-行で散らばらないようにすることで、diffを理解しやすくしようとしています。

103
boatcoder

Git Configマニュアルによると、そのようなオプションはありません。唯一のオプションはエイリアスを作成することです。

http://git-scm.com/docs/git-config

21
Dogbert

シェルで使用可能なOSを使用している場合は、git aliasまたはbash aliasを使用できます。

  1. git alias:このコマンドを実行してエイリアスを追加します:

    git config --global alias.dfw 'diff --ignore-space-change'

    --ignore-space-change can be abbreviated to -w
    を使用してエイリアスを適用するには、git dfw

  2. bashエイリアス:このコマンドを実行して、bashエイリアスを追加します。

    echo "alias gitdfw='git diff --ignore-space-change'">>~/.profile

    新しいターミナルを開き、gitdfwを直接実行して同じことを実現できます。

93
yjqg6666

私は Dogbertの答え に同意するでしょう。エイリアスを使用するのがおそらく最善ですが、別のオプションは config option diff.external をラッパースクリプトに設定することです-bdiffを呼び出します。

11
Mark Longair

編集:私は愚かであり、あなたの要求を完全に読まなかった

man git-configから同様のことを実現する方法:

 apply.whitespace
       Tells git apply how to handle whitespaces, in the same way
       as the --whitespace option. See git-apply(1).

~/.gitconfigまたは./.git/config/を開いて追加します

[apply]
   whitespace = nowarn

また、空白のみを変更するものをコミットできない場合もありますが、いくつかのフラグを使用してそれを無効にできると確信しています。

9

古い質問(2011)ですが、現在git diff -wを表すショートカット--ignore-all-spaceがあります

行を比較するときに空白を無視します。これは、ある行に空白があり、他の行にはない場合でも、違いを無視します。

これがオプションで可能であれば素晴らしいことです。しかし、エイリアスはかなりうまく機能します。ここに私の.gitconfigからの関連する行があります:

[diff]
    tool = mydiff
[difftool "mydiff"]
    cmd = "colordiff -NuBbwi \"$LOCAL\" \"$REMOTE\" | less -R"
[difftool]
    Prompt = false
[alias]
    dt = difftool

これは、colordiffを使用することを前提としています。これをお勧めします。git diffが表示する内容の正確なコピーalmostを提供します。 :

  1. --- colordiffの行は、git diffの同じ行とは異なる色になります(非常に小さな問題)
  2. 各ファイルは一度に1つずつ表示されます(厄介な問題-修正を知っている人はいますか?)

ここに私の/ etc/colordiffrcがあります:

plain=off
newtext=green
oldtext=red
diffstuff=cyan
cvsstuff=red

Mac OS X 10.9.2、gitバージョン1.8.5.2(Apple Git-48)

(colordiffはbrewから取得されました)

2
Joseph Cheek