以下情况: 我正在运行OS X的Mac,最近join了一个项目,其成员目前都使用Windows。 我的首要任务之一是在Git仓库中设置代码库,所以我从FTP中取出了目录树,并试图将其检入到本地准备好的Git仓库中。 当试图做到这一点,我得到的只是这个 fatal: CRLF would be replaced by LF in blog/license.txt. 由于这会影响“blog”文件夹下的所有文件,因此我正在寻找一种方法将树中的所有文件转换为Unix行尾。 有没有开箱即用的工具,或者我自己写脚本? 作为参考,我的Gitconfiguration关于行尾: core.safecrlf=true core.autocrlf=input
我的编辑正在改变我的源文件的行尾。 当我做git diff ,我看到同一行两次 – 一次用-和一次用+ – 没有明显的区别。 我如何得到git diff来向我展示这个变化实际上是什么?
我每天都使用Windows,Mac OS X和Linux。 在所有这些环境中,我都使用git,从回收中提取不同select的人用于行尾。 在我的情况下,是否有确定的build议来设置core.autocrlf?
git merge可以忽略行结束的差异吗? 也许我在问错误的问题……但是: 我尝试了uisng的config.crlf input但事情有点乱,失控,特别是当我应用它后,事实 。 首先,在应用此选项之前应用此configuration似乎不会影响提交到存储库的文件。 另一件事是突然所有提交现在导致大量关于CRLF转换为LF的恼人的警告消息。 说实话,我并不在意使用什么行结尾,我个人更喜欢Unix风格\n ,但无论如何。 我所关心的只是让git merge变得更聪明一些,忽略了行尾的差异。 有时我有两个相同的文件,但git会标记为冲突(冲突是整个文件),只是因为它们使用不同的行结束字符。 更新: 我发现, git diff接受一个–ignore-space-at-eol选项,是否可以让git merge使用这个选项呢?
我有一个可以从Windows和OS X访问的Git存储库,而且我知道已经包含一些带有CRLF行结尾的文件。 据我所知,有两种方法可以解决这个问题: 将core.autocrlf设置为false , 按照这里的说明(在GitHub的帮助页面上回显)来将存储库转换为仅包含LF行结束core.autocrlf ,然后在Windows core.autocrlf设置为true ,并在OS X上进行input 。这样做的问题是,如果我有存储库中的二进制文件: 在gitattributes中没有正确标记为二进制 碰巧包含CRLF和LF, 他们将被损坏。 我的资源库可能包含这样的文件。 那么为什么我不应该关掉Git的换行符? 网上有很多模糊的警告,关于core.autocrlfclosures导致问题,但很less有具体的; 到目前为止,我发现的唯一情况是kdiff3无法处理CRLF结局(对我来说不是问题),而且一些文本编辑器也有行结束的问题(对我来说也不是问题)。 资源库是我公司的内部资源,所以我不用担心与具有不同autocrlf设置或行结束要求的人共享资源库。 是否还有其他问题,只是我不知道?