2016-11-20 139 views
0

我与很多人共享一个git存储库,我们目前发现很难获得所需的行结束函数。我们想发生:Git跨平台行结尾

  • 在库中的所有文件都存储与LF行结束
  • 当一个Mac用户拉/克隆/推,一切依旧
  • 当Windows用户拉动/克隆,一切都转化为CRLF与.scr文件除外
  • 当Windows用户按下,一切都被转换为LF(见第一发子弹)

我已经尝试了几个不同的.gitattributes解决方案nd我认为这可以完成,我只是没有找到正确的方法。

回答

0

这通常是特定于您使用的编辑器。

您可以使用像EditorConfig这样的一组标准规则来指定公共行结尾。只要你的术语中的每个人都使用IDE,它本身支持它,或者安装了支持它的插件,你应该能够实现跨平台一致性。

一个剥开.editorconfig文件,指定LF行结束可能是这样的:

# top-most EditorConfig file 
root = true 

[*] 
end_of_line = lf 

与支持一些编辑器内置的,并为他人插件是listed here

+0

我无法确保每个人都使用相同的IDE。事实上,这将很快成为一个公共项目,所以我希望能够让所有用户都能够在不需要自行进行结束调整的情况下拉动项目。 – WhS4

+0

这正是EditorConfig的重点 - 它是跨平台的,并且受到大多数常见IDE的支持。如果文件存在并且用户安装了插件,则无论IDE的配置如何,它都会按照您告诉的方式格式化行结束符。如果用户在他们的IDE中没有EditorConfig支持,并且他们的行结尾被配置为除你想要的之外的东西,那么你将无法为他们更改 –

+0

啊我现在看到了。谢谢你的回答,我一定会考虑这个,但我希望只通过git来做到这一点,而不是使用外部插件。有没有办法通过.gitattributes和git全局配置获得所需的行为? – WhS4