You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git误将PNG图片识别为已修改(CRLF转LF)无法撤销如何解决

问题原因

该问题的核心是Git误将PNG这类二进制文件识别为文本文件,触发了自动换行符转换逻辑,修改了文件内容。哪怕你执行checkout恢复文件,Git的自动转换规则仍会在文件写入后再次修改内容,所以始终显示为已修改状态,你在diff阶段看到的CRLF替换警告就是该逻辑触发的提示。

解决方案

方案一:项目级配置(推荐,可同步给所有项目成员避免同类问题)

  • 第一步:在项目根目录创建或编辑.gitattributes文件,添加如下规则,明确标记PNG为二进制文件,不做任何换行符转换:
*.png binary
# 可按需扩展其他二进制文件格式,例如
# *.jpg binary
# *.gif binary
# *.ico binary
# *.woff binary
  • 第二步:清除Git对该文件的错误缓存:
    git rm --cached public/css/chosen-sprite.png
  • 第三步:恢复远端的正确版本文件:
    git checkout HEAD -- public/css/chosen-sprite.png
  • 第四步:将.gitattributes文件提交到仓库,后续所有成员拉取代码后都不会再触发同类问题:
    git add .gitattributes && git commit -m "fix: 配置二进制文件跳过换行符转换逻辑"

方案二:本地临时修复(仅自己本地生效,不会修改项目配置)

  • 执行如下命令关闭本地Git全局换行符自动转换后重新恢复文件即可:
git config core.autocrlf false
git checkout HEAD -- public/css/chosen-sprite.png

注意:该方案会关闭本地全局的换行符自动转换,如果同时开发Windows、Linux跨平台项目需要自动适配换行符时不建议使用,优先选择方案一。

内容的提问来源于stack exchange,提问作者mahen3d

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:45:03