git - Windows 和 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.
推荐阅读
- python - 从序列中获取唯一元素(彼此不重复的元素)
- typescript - CheckBox 的 TypeScript 类型化事件处理程序
- c# - 如何在测试中创建一个真正的 MediatR 实例?
- python-3.x - 代码拉起一个没有类型pyglet的对象
- css - 如何在 Angular 中更改 kendo-ui 对话框的背景颜色
- nginx - 第一次重载后:“nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory)”
- c++ - 将 Rust 项目链接到链接到其他 cmake 项目的 cmake 项目
- android - 百度地图发布构建崩溃:NoSuchMethodError: no static method "Lvi/com/gdi/bgl/android/java/EnvDrawText; 以下示例百度地图应用
- jquery - Jquery Sortable Bug:初始化后每次第一次拖动的项目的顶部+左偏移错误
- go - 找到并替换了 Go 模块,但不是必需的