How to make git diff --ignore-space-change the default
GitConfigGit ConfigGit Problem Overview
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.
Git Solutions
Solution 1 - Git
You could use git alias or bash alias if you are using shell-available OS.
-
git alias : Run this command to add alias:
git config --global alias.dfw 'diff --ignore-space-change'
--ignore-space-change can be abbreviated to -w
to apply the alias using:git dfw
-
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.
Solution 2 - Git
According to the Git Config manual, there's no such option. Your only option is to make an alias.
Solution 3 - Git
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.
Solution 4 - Git
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
.
Solution 5 - Git
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.
Solution 6 - Git
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:
- the --- line in colordiff is colored differently than the same line in git diff (very minor issue)
- 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)