Git忽略BOM(防止git diff显示字节顺序标记更改)

时间:2014-12-01 07:58:38

标签: git byte-order-mark git-diff

我希望git diff不显示BOM更改 此类更改通常在diff中显示为<feff>

-<feff>/*^M
+/*^M

如何让git diff以这种方式行事? 最好使用命令行参数。

git --ignore-all-space(又名git -w)没有做到这一点。 如果重要的话,我在Mac OS X上。

1 个答案:

答案 0 :(得分:5)

使用Git属性过滤器

一种可能的解决方案是创建BOM过滤器,例如:

#!/bin/bash
sed '1s/^\xEF\xBB\xBF//' "$1"

将其存储在路径中的某个位置(如removebom)并使其可执行。

然后你需要通过运行:

在Git中配置过滤器
$ git config diff.removebom.textconv removebom

并将您感兴趣的文件(即cpp)的属性添加到您的存储库:

*.cpp diff=removebom

作为.gitattributes文件。

有关该主题的更多信息,请访问:

或删除所有

的BOM

...因为,希望BOM可以在项目中一劳永逸地删除:)