Handeling在GIT结束

时间:2018-06-08 23:27:46

标签: git newline core.autocrlf

假设我们拥有10名开发人员。其中一半使用Windows,一半使用Linux。他们都在一个项目上一起工作,使用GIT共享工作。 CRLF / LF的问题开始......

Exmaple:一个使用Window的开发人员与使用Linux的开发人员一起工作。他们俩都需要查看/编辑相同的文件。

CRLF和LF会有问题吗? GIT处理这个问题的方法是什么? (强制Linux不是解决方案)

1 个答案:

答案 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例如)

我有always recommended that .gitattributes approach