【问题标题】:How to make git diff --ignore-space-change the default如何使 git diff --ignore-space-change 成为默认值
【发布时间】:2011-11-10 17:19:36
【问题描述】:

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

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

【问题讨论】:

  • 想更改正确答案? :)
  • 现在有一个快捷方式git diff -w,它是--ignore-all-space 的快捷方式:比较行时忽略空格。即使一行有空格而另一行没有空格,这也会忽略差异。

标签: git config git-config


【解决方案1】:

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

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

【讨论】:

  • 我在阅读该页面时也是这么想的。我希望有人知道一种没有记录的方法……哦,好吧。
  • @Dogbert - 我有同样的问题,只有当我执行 git add -p 时,有什么建议吗?
  • @JoãoPimentelFerreira 这不是默认设置。
【解决方案2】:

我同意Dogbert's answer 的观点,即最好只使用别名,但另一种选择是将config option diff.external 设置为使用-b 调用diff 的包装脚本。

【讨论】:

    【解决方案3】:

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

    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来达到同样的效果。

    【讨论】:

    • 这应该是公认的答案,因为它实际上对示例有用,而不是“转到此 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 将显示的内容完全相同的副本,但有两个不同之处:

    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 中获得的)

    【讨论】:

      【解决方案6】:

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

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

      【讨论】:

        猜你喜欢
        • 2014-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-19
        • 1970-01-01
        • 2022-12-10
        • 2015-08-06
        • 2016-06-24
        相关资源
        最近更新 更多