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
终极办法:通过git设置禁用自动转换
# core.autocrlf false 将禁用 Git 自动转换换行符,这样就可以保留你本地的换行格式
git config --global core.autocrlf false
# 使用以下命令清除所有文件的 Git 缓存(这不会删除文件,只是从缓存中移除文件)
git rm --cached -r .
# 这将根据你本地的换行符设置(CRLF)将文件重新添加到 Git 索引中
git add --renormalize .
# 提交代码
git status
git commit -m "Force CRLF line endings"
git push

浙公网安备 33010602011771号