在跨平台项目中,如何为所有文本文件正确配置CRLF规范化,使用“text=auto”将其与“smudge”和“clean”过滤器一起配置特定文件的“*.h filter=myfilter”?
示例:
在添加了
更新
关于警告,过滤器使用
示例:
# my .gitattributes
* text=auto # in case people don't have core.autocrlf set
*.h filter=myfilter # filter for header files
在添加了
*.h filter=myfilter
之后,我收到了如下警告信息:
如果我删除warning: LF will be replaced by CRLF in foo.h. The file will have its original line endings in your working directory.
*.h filter=myfilter
,那么警告就会消失。为什么?这一行是否禁用了*.h文件的CRLF规范化?更新
关于警告,过滤器使用
sed
替换文件头注释中的标记。当在Windows上运行时,sed
会将CRLF
转换为LF
。这就是警告的来源。解决方法是以二进制模式运行sed
(--binary
)。