如何使 git diff ——忽略空间更改为默认设置

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

我只想要 --ignore-space-change当我做差异,而不是当我做申请或其他任何东西。我试图通过不使用没有实际变化的无关 +/-行来使差异更容易理解。

80967 次浏览

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

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

我同意 道格伯特的回答的观点,即最好只使用别名,但另一种选择是将 配置选项 diff.external设置为一个包装器脚本,该脚本使用 -b调用 diff

如果使用 shell 可用的操作系统,则可以使用 Git 化名Bash 化名

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

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

    --ignore-space-change can be abbreviated to -w
    使用: git dfw

  2. 应用别名
  3. Bash 别名 : 运行此命令添加 bash 别名:

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

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

这并不能准确地回答你的问题,但是它是一种实现 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).

打开你的 ~/.gitconfig或者 ./.git/config/并附加

[apply]
whitespace = nowarn

它也可能不允许您提交只更改空格的内容,但是我确信您可以通过一些标志来推翻这一点。

如果可以选择的话,那就太好了。不过化名还是挺有用的。这是我的相关台词。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 蠢货 would show, with two differences:

  1. Colordiff 中的——-行与 git diff 中的同一行的着色不同(这是一个很小的问题)
  2. each file is shown one at a time (annoying issue -- anyone know a fix?)

这是我的/etc/color:

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

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

(从酿造中获得的)

老问题(2011) ,但现在有一个快捷方式 git diff -w代表 --ignore-all-space

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