我可能可以设置一个别名,但似乎我应该能够将其设置为配置文件中的选项,只是我不知道如何操作。
我仅希望在执行差异比较(diff)时使用 --ignore-space-change
,而不是在执行应用(apply)或其他任何操作时使用。 我试图通过不在差异比较中添加无实际更改的多余 +/- 行来使差异比较更易于理解。
我可能可以设置一个别名,但似乎我应该能够将其设置为配置文件中的选项,只是我不知道如何操作。
我仅希望在执行差异比较(diff)时使用 --ignore-space-change
,而不是在执行应用(apply)或其他任何操作时使用。 我试图通过不在差异比较中添加无实际更改的多余 +/- 行来使差异比较更易于理解。
如果您使用Shell可用的操作系统,您可以使用git alias或bash alias。
git alias:运行此命令添加别名:
git config --global alias.dfw 'diff --ignore-space-change'
--ignore-space-change
可以缩写为-w
,使用别名时输入:git dfw
bash alias:运行此命令添加bash alias:
echo "alias gitdfw='git diff --ignore-space-change'">>~/.profile
打开一个新的终端就可以直接运行gitdfw
达到相同的效果。
-b
与--ignore-space-change
相同。这与Linux的diff
命令一致,其中-w
表示--ignore-all-space
。这是一个重要的区别,因为例如,在-w
选项下,文本a b c
被认为与abc
相同;在代码中,这可能不是您想要的,因此-b
是更好的选择。 - IpsRich虽然问题是2011年的旧问题,但现在有一个快捷方式git diff -w
,它表示--ignore-all-space
比较行时忽略空格。即使一行有空格而另一行没有空格,这也会忽略差异。
虽然这并没有完全回答你的问题,但下面是一种类似于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
它可能不允许您提交仅更改空格的内容,但我确信您可以使用一些标志来覆盖它。
git diff
时设置默认值的方法。这将为apply
完成此操作。 - denishaskin如果有一个选项可以实现这一点就太好了,但是别名也可以很好地工作。以下是我 .gitconfig 文件中相关的行:
[diff]
tool = mydiff
[difftool "mydiff"]
cmd = "colordiff -NuBbwi \"$LOCAL\" \"$REMOTE\" | less -R"
[difftool]
prompt = false
[alias]
dt = difftool
git diff
完全相同的输出,但有两个区别:
---
行的颜色不同于在git diff中的颜色(非常小的问题)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获取的)