如何使 git diff --ignore-space-change 成为默认值

问题描述 投票:0回答:6

我可能可以设置一个别名,但似乎我应该能够将其设置为配置文件中的一个选项,只是我无论如何都看不到这样做。

我只想要

--ignore-space-change
当我做 diff 时,而不是当我做 apply 或其他任何事情时。我试图让差异更容易理解,不要用没有真正变化的无关 +/- 线来混淆它。

git config git-config
6个回答
109
投票

如果您使用的是 shell 可用的操作系统,则可以使用 git aliasbash alias

  1. git alias:运行此命令添加别名:

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

    这里

    --ignore-space-change
    可以缩写为
    -w

    使用别名:

    git dfw

  2. bash 别名:运行此命令添加 bash 别名:

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

    打开一个新终端,直接运行

    gitdfw
    即可实现同样的效果


20
投票

根据Git Config手册,没有这样的选项。您唯一的选择是创建别名。

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


15
投票

老问题(2011),但现在有一个快捷方式

git diff -w
,代表
--ignore-all-space

比较行时忽略空格。即使一行有空格而另一行没有空格,这也会忽略差异。


11
投票

我同意 Dogbert 的回答,最好只使用别名,但另一种选择是将 config 选项

diff.external
设置为使用
diff
调用
-b
的包装器脚本。


10
投票

这并不能完全回答你的问题,但这是实现类似目标的一种方法

apply

来自

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

它也可能不允许您提交仅更改空白的内容,但我确信您可以使用一些标志来否决它。


2
投票

如果有一个选项可以实现这一点,那就太好了。但别名效果相当好。这是我的 .gitconfig 中的相关行:

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

这假设使用我推荐的 colordiff,为您提供 git diff 将显示的内容的几乎完全相同的副本,有两个区别:

  1. colordiff 中的 --- 行的颜色与 git diff 中同一行的颜色不同(非常小的问题)
  2. 每个文件一次显示一个(烦人的问题——有人知道解决办法吗?)

这是我的/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获得的)

© www.soinside.com 2019 - 2024. All rights reserved.