115

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

我只想要--ignore-space-change我做差异的时候,而不是我做应用或其他任何事情的时候。我试图通过不与没有实际变化的无关 +/- 行混淆它来使差异更容易理解。

4

6 回答 6

105

如果您使用的是 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. bash 别名:运行此命令以添加 bash 别名:

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

    打开一个新的终端,你可以直接运行gitdfw来实现相同的。

于 2012-10-24T08:21:34.787 回答
21

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

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

于 2011-09-05T15:30:50.590 回答
15

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

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

于 2018-10-29T21:21:42.280 回答
11

我同意Dogbert 的回答,即最好只使用别名,但另一种选择是将config 选项diff.external设置为diff使用-b.

于 2011-09-05T16:06:37.693 回答
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).

所以打开你的~/.gitconfigor./.git/config/并追加

[apply]
   whitespace = nowarn

它也可能不允许您提交仅更改空格的内容,但我相信您可以使用一些标志来推翻它。

于 2014-02-13T12:31:56.093 回答
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 中获得的)

于 2014-03-26T16:32:19.757 回答