【问题标题】:Cross platform development using Git (EOL issue)使用 Git 进行跨平台开发(EOL 问题)
【发布时间】:2010-10-20 23:37:19
【问题描述】:

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

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

所以我的问题是如何设置所有环境以在提交时将所有行尾转换为 LF。并且拉的时候不要改变行尾,保持LF。

【问题讨论】:

    标签: git cross-platform eol


    【解决方案1】:

    您要求的是每个人都将配置参数core.autocrlf 设置为input,这将导致输入(即数据进入存储库;提交)而不是输出(来自存储库的数据;签出,在拉取期间发生)。

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

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

    【讨论】:

    • 问题是我们使用了大量不同的编辑器(Netbeans、TextMate、Notepad++、MS Write、nano、vim、GitX、SmartGit 等),调整它们的设置是不切实际的在每台机器上。我会看看autocrlf input
    • @Petah:但是你也必须在每台机器上调整这个配置值。我知道,到处都是相同的调整,让 git 为您修复它很容易。我也只是想提供平衡的观点:首先做对。
    • 第一名是很久以前的事了。
    • @Petah:“第一名”是指“在创建/编辑内容时”,而不是“在编辑内容时”。如果你希望它在 repo 中全部是 LF 而不是 CRLF,那么无论你使用什么解决方案,仍然必须有一个提交来改变它。
    猜你喜欢
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    相关资源
    最近更新 更多