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

发布于 2024-09-28 16:34:03 字数 248 浏览 3 评论 0原文

在我们的开发环境中,我们使用 Windows、Mac 和 Linux。当涉及到 commit -> 时,我遇到了麻烦拉->推送工作流程。

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

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

In our development environment we use Windows, Mac, and Linux. I am having trouble when it comes to the commit -> pull -> push work flow.

The problem is end of line characters. If someone makes an edit on Mac and some one else makes an edit on Windows they conflict when pulling. The diff shows the entire file as different because the line endings have changes.

So my question is how can I setup all environments to convert all line endings to just LF when committing. And when pulling, don't change the line ending, leave it as LF.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

汹涌人海 2024-10-05 16:34:03

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

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

(例如,请参阅 VonC 的答案此处,以及有关 autocrlf 的其他问题。)

What you're asking for is for everyone to set the config parameter core.autocrlf to input, which will cause line ending normalization on input (that is, data going into the repository; committing) but not on output (data coming out of the repository; checking out, which happens during a pull).

However, you may not actually want to do this. The ideal thing is for everyone to simply configure their editors correctly. Most programmers' editors are reasonably intelligent about this - they'll detect line endings and use the same line endings when writing back to the file. Some editors may need a little help.

(See for example VonC's answer here, and other SO questions about autocrlf.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文