如何使 git diff --ignore-space-change 成为默认值
Posted
技术标签:
【中文标题】如何使 git diff --ignore-space-change 成为默认值【英文标题】:How to make git diff --ignore-space-change the default 【发布时间】:2011-11-10 17:19:36 【问题描述】:我可能可以设置一个别名,但似乎我应该能够将其设置为配置文件中的一个选项,只是我看不到这样做。
我只需要 --ignore-space-change
在我做差异时,而不是在我做应用或其他任何事情时。我试图通过不与没有实际变化的无关 +/- 行混淆它来使差异更容易理解。
【问题讨论】:
想更改正确答案? :) 现在有一个快捷方式git diff -w
,它是--ignore-all-space
的快捷方式:比较行时忽略空格。即使一行有空格而另一行没有空格,这也会忽略差异。
【参考方案1】:
根据 Git Config 手册,没有这样的选项。您唯一的选择是创建别名。
http://git-scm.com/docs/git-config
【讨论】:
我在阅读该页面时也是这么想的。我希望有人知道一种没有记录的方法……哦,好吧。 @Dogbert - 我有同样的问题,只有当我执行 git add -p我同意Dogbert's answer 的观点,即最好只使用别名,但另一种选择是将config option diff.external
设置为使用-b
调用diff
的包装脚本。
【讨论】:
【参考方案3】:如果你使用的是 shell 可用的操作系统,你可以使用 git alias 或 bash alias。
git alias:运行此命令添加别名:
git config --global alias.dfw 'diff --ignore-space-change'
--ignore-space-change can be abbreviated to -w
使用别名:git dfw
bash 别名:运行此命令添加 bash 别名:
echo "alias gitdfw='git diff --ignore-space-change'">>~/.profile
打开一个新的终端,你可以直接运行gitdfw
来达到同样的效果。
【讨论】:
这应该是公认的答案,因为它实际上对示例有用,而不是“转到此 URL”。 根据current git documentation,-b
与--ignore-space-change
相同。它与 Linux diff
命令一致,其中-w
表示--ignore-all-space
。这是一个重要的区别,例如,文本 a b c
被认为与带有 -w
选项的 abc
相同;在代码中,这不太可能是你想要的,所以-b
是一个更好的选择。【参考方案4】:
这并不能完全回答您的问题,但它是为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
它也可能不允许你提交只改变空格的东西,但我相信你可以用一些标志来推翻它。
【讨论】:
OP 正在寻找一种在执行git diff
时设置默认值的方法。这是为apply
做的。【参考方案5】:
如果有一个选项可以做到这一点,那就太好了。但是别名效果很好。以下是我的 .gitconfig 中的相关行:
[diff]
tool = mydiff
[difftool "mydiff"]
cmd = "colordiff -NuBbwi \"$LOCAL\" \"$REMOTE\" | less -R"
[difftool]
prompt = false
[alias]
dt = difftool
这假设使用我推荐的 colordiff,为您提供 几乎 与 git diff 将显示的内容完全相同的副本,但有两个不同之处:
-
colordiff 中的 --- 行的颜色与 git diff 中的同一行不同(非常小的问题)
每个文件一次显示一个(烦人的问题 - 有人知道解决方法吗?)
这是我的 /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 中获得的)
【讨论】:
【参考方案6】:旧问题 (2011),但现在有一个快捷方式 git diff -w
代表 --ignore-all-space
比较行时忽略空格。即使一行有空格而另一行没有空格,这也会忽略差异。
【讨论】:
以上是关于如何使 git diff --ignore-space-change 成为默认值的主要内容,如果未能解决你的问题,请参考以下文章
使 vim 显示带有颜色的 git diff,例如 git diff 命令(red-delete,green-add)