boatcoder
boatcoder

Reputation: 18117

How to make git diff --ignore-space-change the default

I could probably setup an alias, but it seems like I should be able to set this as an option in the config file, only I don't see anyway to do it.

I only want the --ignore-space-change when I'm doing diff, not when I'm doing apply or anything else. I'm trying to make the diff easier to understand by not cluttering it with with extraneous +/- lines that have no real changes on them.

Upvotes: 125

Views: 89966

Answers (6)

yjqg6666
yjqg6666

Reputation: 1205

You could use git alias or bash alias if you are using shell-available OS.

  1. git alias : Run this command to add alias:

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

    Here --ignore-space-change can be abbreviated to -w.

    To use the alias: git dfw

  2. bash alias : Run this command to add bash alias:

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

    Open a new terminal and you can directly run gitdfw to achieve the same.

Upvotes: 108

some helpful git
some helpful git

Reputation: 127

This doesn't answer your question exactly, but it's a way to achieve something similar for apply.

From man git-config:

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

So open up your ~/.gitconfig or ./.git/config/ and append

[apply]
   whitespace = nowarn

It might also not let you commit something that only changes whitespace, but I'm sure you can overrule that with some flags.

Upvotes: 10

Old question (2011), but now there's a shortcut git diff -w which stands for --ignore-all-space

Ignore whitespace when comparing lines. This ignores differences even if one line has whitespace where the other line has none.

Upvotes: 15

Joseph Cheek
Joseph Cheek

Reputation: 614

it would be great if this were possible with an option. but an alias works fairly well. here are the relevant lines from my .gitconfig:

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

this assumes using colordiff, which i recommend, giving you an almost exact copy of what git diff would show, with two differences:

  1. the --- line in colordiff is colored differently than the same line in git diff (very minor issue)
  2. each file is shown one at a time (annoying issue -- anyone know a fix?)

here's my /etc/colordiffrc:

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

Mac OS X 10.9.2, git version 1.8.5.2 (Apple Git-48)

(colordiff was obtained from brew)

Upvotes: 2

Mark Longair
Mark Longair

Reputation: 468081

I'd agree with Dogbert's answer that it's probably best to just use an alias, but another option is to set the config option diff.external to a wrapper script that calls diff with -b.

Upvotes: 11

Dogbert
Dogbert

Reputation: 222398

According to the Git Config manual, there's no such option. Your only option is to make an alias.

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

Upvotes: 20

Related Questions