使用GitHub Desktop提交变更提示LF将被替换为CRLF如何解决?
Git换行符CRLF转换警告解决方法
这个提示不属于阻断提交的错误,是Git的跨平台换行符兼容提醒:默认配置下Windows环境的Git会把你提交的文件里的LF换行符自动替换为CRLF存入本地工作区,仓库远端则统一存储LF换行符。如果你不想收到该提示,同时避免静态网页部署到服务器后出现换行符异常,可按以下步骤操作:
步骤1:添加仓库级.gitattributes规则(优先级最高,一劳永逸)
在你的仓库根目录新建名为.gitattributes的文件,写入以下配置,明确指定不同文件的换行符规则:
# 自动识别文本文件,提交时统一转换为LF存储到仓库 * text=auto # 静态网页相关文件强制统一使用LF换行符,本地检出也保留LF *.html text eol=lf *.xml text eol=lf *.css text eol=lf *.js text eol=lf *.json text eol=lf *.md text eol=lf # 二进制文件不做换行符转换 *.png binary *.jpg binary *.gif binary *.ico binary *.zip binary
步骤2:刷新Git缓存清除历史标记
之前的文件已经被Git记录了旧的换行符状态,需要执行命令清除缓存重新索引:
- 通过GitHub Desktop的「Repository > Open Repository in Command Prompt」打开当前仓库的命令行
- 如果有未提交的本地修改,先执行
git stash暂存变更 - 依次执行以下命令:
git rm --cached -r .(注意末尾的.代表当前目录,不可遗漏)git reset --hard恢复工作区文件到最新提交状态git stash pop(如果你之前暂存了修改,执行这条恢复变更)git add .重新索引所有文件git commit -m "统一文件换行符为LF,消除转换警告"提交规则变更
步骤3:可选全局配置适配静态站点开发
如果你日常主要开发部署到Linux环境的网页/代码,可以修改Git全局配置避免后续其他项目也出现同类提示:
# 提交时转换为LF,检出时不转换,本地工作区也保留LF git config --global core.autocrlf input # 禁止提交混合换行符的文件,提前发现异常 git config --global core.safecrlf true
完成以上操作后再用GitHub Desktop提交变更就不会再出现该提示,静态文件的换行符也会统一为适配服务器的LF格式,不会出现部署异常。
内容的提问来源于stack exchange,提问作者Saugat Ghimire
相关产品推荐
相关产品推荐

