繁体   English   中英

Windows 和 Linux 中的行尾自动检测

[英]Line Endings AutoDetect in Windows and Linux

我已经看到这个问题被问了很多,并且我已经阅读了关于它的材料。

我仍然很困惑,我遇到了一些相互矛盾的意见。

在我的环境中,开发发生在 Windows 和 Linux 机器上。 有问题的文件没有扩展名,但包含文本,并且需要具有 LF 结尾以符合 Linux 方面。

我想创建一个 .gitattributes 文件,以便集中地只需要进行一项更改。

我将所有文件指定为二进制文件(例如图像和音频),以避免每个文件都被转换,以及为其他文件创建规则。

我已经看到有关使用的建议:

* text=auto

根据此处的另一个堆栈溢出帖子:

这是 * text=auto 用我的话来说的:当有人提交一个文件时,Git 会猜测该文件是否是文本文件,如果是,它将提交一个所有 CR + LF 字节都被替换的文件版本与 LF 字节。 它不会直接影响文件在工作树中的外观,还有其他设置可以在签出文件时将 LF 字节转换为 CR + LF 字节。

这对我的目的来说似乎是错误的。

当从 Linux 机器克隆存储库并签出一个分支时,听起来它会将其转换为工作目录中的 CRLF。

工作目录中的行尾是否取决于操作系统? 它会自动检测吗?

我需要它是 Linux 工作目录中的 LF。 在 Windows 我不太在意。 但它需要在 Linux 和远程存储库中都是 LF

* text=auto会完成我正在寻找的东西吗?

* text=auto eol=lf会更好地满足我的目的吗?

提前致谢

根据我在git help attributes上读到的内容,您应该使用您说的最后一句话:

* text=auto eol=lf

从文档中:

Set to string value "lf"
   This setting forces Git to normalize line endings to LF on checkin and prevents conversion to CRLF when the file is checked out.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM