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



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

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

我怎样才能让git diff表现得这样?
最好使用命令行参数。

git --ignore-all-space(又名git -w)不能解决问题。如果这很重要,我使用的是Mac OS X。

使用 Git 属性筛选器

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

#!/bin/bash
sed '1s/^xEFxBBxBF//' "$1"

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

然后,您需要通过运行以下命令在 Git 中配置过滤器:

$ git config diff.removebom.textconv removebom

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

*.cpp diff=removebom

作为.gitattributes文件。

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

  • https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#_diffing_binary_files
  • https://unix.stackexchange.com/questions/381230/how-can-i-remove-the-bom-from-a-utf-8-file

或者一次性删除物料清单

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

最新更新