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

别等时光非礼了梦想. 提交于 2019-11-26 19:26:31

问题


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.


回答1:


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




回答2:


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'

    --ignore-space-change can be abbreviated to -w
    to apply the alias using: 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.




回答3:


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.




回答4:


EDIT: I AM A FOOL AND DIDN'T READ YOUR REQUEST THROUGHLY

A way to achieve something similar, 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.




回答5:


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.




回答6:


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)



来源:https://stackoverflow.com/questions/7310033/how-to-make-git-diff-ignore-space-change-the-default

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!