我希望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可以在您的项目中一劳永逸地删除:)