github通过raw下载文件注意换行符问题
问题
我们在使用github的时候,有时候遇到一些文件想要下载但是又不想clone整个项目,可以选择在点击文件右上角的Raw
按钮来下载文件,但是这种下载是有问题的。
GitHub 的服务器默认使用类 Unix 行尾(LF
),这是 Linux/macOS 的标准。
即使原始仓库是 CRLF
(Windows 格式),在 Raw
模式下也会被转换成 LF
。
这可能会导致 Windows 用户在某些编辑器或脚本运行中遇到问题(尤其是 .ps1
、.bat
脚本)
如果使用notepad++
打开显示行尾符,可以看到结尾显示的是LF
。一般情况下这种现象很难被发现,因为换行符号都是不可见的。对于换行符敏感的文件,这个就非常重要。
解决办法:
-
可以通过下载项目的
zip
压缩包,在本地解压后来获取里面的文件。 -
或者使用
git clone
来获取整个项目。
通过下载克隆整个项目来获取文件也是无奈之举,
目前没有发现更好的方法。
- 通过添加
.gitattributes
文件来设置指定格式的文件换行符
# 所有 .bat 文件强制使用 CRLF(Windows 脚本)
*.bat text eol=crlf
# Git 完全不要管理某些文件的行尾,可以用 binary
# (即 Git 把它当二进制,不会做 LF/CRLF 转换)
*.bat binary