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

Pet*_*tah 4 git cross-platform eol

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

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

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

Cas*_*bel 6

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

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

(参见例如VonC的答案在这里,和其他有关autocrlf SO问题.)