【Git】关于 LF/CRLF

情况描述

脚本 A 在 Linux 下以 LF 格式提交。
Windows 下,出现了脚本 A 是CRLF的情况。
当改成LF后, 先 git stash,再 git stash pop ,该脚本又变回 CRLF

问题解决方法

git config --global core.autocrlf false

详细解释:core.autocrlf 的作用

这个配置控制 Git 在工作区(本地文件夹)与 Git 仓库(.git 中的对象)之间换行符的自动转换策略

core.autocrlf 有三个值:

含义 常用于哪系统
false 关闭自动换行符转换。保留你文件实际的换行符(LF或CRLF),Git 不做任何更改。 跨平台/你想完全控制换行符时
true Git 会在提交(add)时把 CRLF → LF,在检出(checkout)时把 LF → CRLF。 Windows(默认)
input Git 在提交时把 CRLF → LF,在检出时不改(保留 LF)。 Linux / macOS 开发者经常用

最佳实践(跨平台或统一 LF)

如果团队是跨平台或只想统一使用 LF(比如脚本、源代码),可以考虑:

  1. 设置:

    git config --global core.autocrlf false
    
  2. 配置 .gitattributes(推荐!)

    # 强制这些类型用 LF 结尾
    *.sh text eol=lf
    *.py text eol=lf
    *.js text eol=lf
    *.txt text eol=lf
    
  3. 本地编辑器设置(例如 VSCode):

    • 设置 "files.eol": "\n" 保持 LF
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容