假设我们拥有10名开发人员。其中一半使用Windows,一半使用Linux。他们都在一个项目上一起工作,使用GIT共享工作。 CRLF / LF的问题开始......
Exmaple:一个使用Window的开发人员与使用Linux的开发人员一起工作。他们俩都需要查看/编辑相同的文件。
CRLF和LF会有问题吗? GIT处理这个问题的方法是什么? (强制Linux不是解决方案)
答案 0 :(得分:2)
您可以在最近的文章中看到更多内容" Git for Windows: Line Endings"来自 Edward Thomson (前GitHubber,现在是Microsoft,现在......错误的GitHubber)
处理行结尾的关键是使用
.gitattributes
确保您的配置已提交到存储库。对于大多数人来说,这就像在包含一行的存储库根目录中创建名为.gitattributes
的文件一样简单:
* text=auto
使用此设置,Windows用户将文本文件从Windows样式行结尾(\ r \ n)转换为Unix样式行结尾(\ n),当它们被添加到存储库时。
为什么不
core.autocrlf
?最初,Git for Windows为您可能已经看到的行结尾引入了一种不同的方法:
core.autocrlf
。这是一种类似于属性机制的方法:想法是Windows用户将设置Git配置选项core.autocrlf=true
,并且当他们将文件添加到存储库时,他们的行结尾将转换为Unix样式行结尾。这两个选项之间的区别很微妙但很关键:
.gitattributes
在存储库中设置,因此它与所有人共享。但是core.autocrlf
是在本地Git配置中设置的。这意味着每个人都必须记住设置它,并将其设置相同。
我想补充说core.autocrlf
适用于所有文件,包括二进制文件,而.gitattribure
core.eol
指令可以设置为特定文件(如{{1例如)