【问题标题】:Git diff: How to ignore starting space of an empty line?Git diff:如何忽略空行的起始空间?
【发布时间】:2016-07-18 08:28:56
【问题描述】:

我是iOS开发者,当我回车时,xcode会自动将新行缩进4个空格,方便开发。

但是在使用 git diff 时,每个空行都会被标记为红色。

这在团队开发中可能很烦人。

那么怎么处理呢? 提前致谢!

【问题讨论】:

标签: ios git


【解决方案1】:

三年多后,借助 Git 2.25(2020 年第一季度),“差异”机制学会了在同时使用 --ignore-blank-lines--function-context 时不会丢失上下文中添加/删除的空白行。

因此,您的中间 4 个空行不会显示。
但在函数的上下文中,它们可能会。

参见René Scharfe (rscharfe)commit 0bb313a(2019 年 12 月 5 日)。
(由 Junio C Hamano -- gitster -- 合并于 commit f0070a7,2019 年 12 月 16 日)

xdiff: 忽略函数上下文的变化

签字人:René Scharfe

仅涉及空行的更改会使用--ignore-blank-lines 隐藏,除非它们出现在其他更改的上下文行中。

这由xdl_get_hunk() 处理,用于--inter-hunk-context-u-U 添加的上下文。

xdl_emit_diff() 添加的-W--function-context 的函数上下文不关注这种被忽略的变化;它完全依赖于xdl_get_hunk(),并且只显示了函数上下文中出现的忽略更改的后图像。

这是不一致和令人困惑的。

如果 --ignore-blank-lines--function-context 恰好落在函数上下文中,则通过完全显示忽略的更改来改进一起使用的结果。

【讨论】:

    【解决方案2】:

    在使用 diff 时使用这个

    git diff -w // (--ignore-all-space)
    

    您可以为此创建一个别名,这样您就不必每次都键入它。

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

    git diff

    -b / --ignore-space-change
    忽略空格数量的变化。
    这会忽略行尾处的空格,并认为所有其他一个或多个空格字符的序列是等效的。

    -w / --ignore-all-space
    比较行时忽略空格。 即使一行有空格而另一行没有空格,这也会忽略差异。

    --ignore-blank-lines
    忽略行全为空白的更改。

    【讨论】:

      猜你喜欢
      • 2011-05-20
      • 1970-01-01
      • 2016-01-14
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      相关资源
      最近更新 更多