我有带有 VS 项目的 Windows 机器,我使用 Visual Studio 和 Cygwin 环境中的工具,包括 Git。有时我在编辑后会在文件中得到不同的行尾。我想要一个简单的解决方案来检查文件的行尾一致性,然后再去回购。core.safecrlf
我认为Git是正确的。现在我有一个奇怪的行为:
文件A
并B
带有以下参数:
$file A
A: HTML document, UTF-8 Unicode text, with CRLF line terminators
$file B
B: HTML document, UTF-8 Unicode (with BOM) text, with CRLF line terminators
文件 A 已经在仓库中,文件 B 是新的。请注意,两者都有 CRLF 行尾。现在尝试将它们上演,core.safecrlf
是true
。
$git add A # ok
$git add B # fails
fatal: CRLF would be replaced by LF in B.
使用core.safecrlf
正确吗?或者也许我需要写钩子来检查文件?
笔记:
- 尝试使用不同的文件编码(有和没有 BOM),没有区别。
- Git中有相关
core.autocrlf
功能,将其添加到标签中(Stackoverflow没有标签core.safecrlf
) - git 版本 1.8.5.rc1.17.g0ecd94d(从 Cygwin 下的源代码编译)
编辑#1:签出core.autocrlf
- 它是input
。更改为false
,现在我可以添加两个文件。为什么?