我正在运行一个混合环境,并保留一个中央的裸存储库,我可以拉动并推送大部分内容。这个集中式存储库在Linux上运行,我可以访问Windows XP / 7,Mac和Linux。在所有存储库中,我将以下行放在我的.git / config中:
[core]
autocrlf = true
我在任何地方都没有标记safecrlf=true
。我第一次修改我的Windows机器(XP)上的东西时没有问题,当我看到差异时,它看起来很好。但是当我在其他Windows机器(7)上执行相同操作时,所有行都显示为已更改,但本地行结尾为\ r \ n按预期方式(在十六进制编辑器中检查时)。这同样适用于MacOSX。有时候我觉得不同的系统在线路结束时会有争吵,但我无法确定(我一直在忘记改变特定文件的所有时间)。
我没有使用autocrlf
设置,但在几个月前设置了标志。这会导致我目前的问题吗?我是否需要再次克隆一切以丢失旧的行李?还是还有其他需要配置的东西?我试过git checkout -- .
大约一百万次,但没有成功。
答案 0 :(得分:3)
您需要在正在处理的每台计算机上(在全局范围内)将autocrlf
设置为true
,或者为存储库的每个副本(在本地)设置{{1}}。您克隆的repo的设置不会应用于您的本地仓库。
另一个答案是您的仓库中的文件中有多个行结尾。
可以为每个源文件类型设置结帐时的过滤器以更正其行结尾,并在签入时将其重置为repo标准。