使用Git进行跨平台开发(EOL问题)

时间:2010-10-20 23:37:19

标签: git cross-platform eol

在我们的开发环境中,我们使用Windows,Mac和Linux。我遇到commit -> pull -> push工作流程时遇到了麻烦。

问题是行尾字符。如果有人在Mac上进行编辑,而其他人在Windows上进行编辑则会在拉动时发生冲突。 diff将整个文件显示为不同,因为行结尾有变化。

所以我的问题是如何设置所有环境,以便在提交时将所有行结尾转换为LF。拉动时,不要改变线条结束,将其保留为LF。

1 个答案:

答案 0 :(得分:6)

您要求的是每个人都将配置参数core.autocrlf设置为input,这将导致输入行结束规范化(即数据进入存储库;提交)但是不在输出上(来自存储库的数据;检出,在拉动期间发生)。

但是,您可能实际上并不想这样做。理想的是每个人都可以正确配置他们的编辑器。大多数程序员的编辑都对此有相当的智慧 - 他们会在写回文件时检测行结尾并使用相同的行结尾。有些编辑可能需要一些帮助。

(例如参见VonC的回答here,以及有关autocrlf的其他SO问题。)