1

我正在运行一个混合环境,并保留一个中央的、裸露的存储库,我在其中提取和推送我的大部分内容。这个集中式存储库在 Linux 上运行,我查看了 Windows XP/7、Mac 和 Linux。在所有存储库中,我将以下行放在我的 .git/config 中:

[core]
     autocrlf = true

我在任何地方都没有国旗safecrlf=true。第一次在我的一台 Windows 机器 (XP) 上修改东西时没有问题,当我查看差异时,它看起来很好。但是当我在另一台 Windows 机器 (7) 上执行相同操作时,所有行都显示为已更改,但本地行结尾是 \r\n 预期的(在十六进制编辑器中检查时)。这同样适用于 MacOSX 可以。有时我会感觉到不同的系统在行尾发生冲突,但我不能确定(我总是忘记更改特定文件的时间)。

我以前没有autocrlf设置,但在几个月前设置了标志。这会导致我目前的问题吗?我是否需要再次克隆所有内容以释放一些旧包袱?还是还有其他需要配置的东西?我尝试git checkout -- .了大约一百万次,但没有成功。

4

1 回答 1

3

您需要autocrlftrue您正在处理的每台机器(全局)或存储库的每个副本(本地)上设置为。您从中克隆的存储库的设置不会应用于您的本地存储库。

另一个答案是您的存储库中的文件中混合了行尾。

可以为每种源文件类型设置检出过滤器以更正它们的行尾,并在检入时将它们重置为回购标准。

于 2010-06-20T02:26:09.273 回答