在 Windows 上提交到 Git 的 PNG 文件损坏了 %PNG\r\n header

Committed PNG files to Git on Windows broke %PNG\r\n header

我在 Windows 上的 Git 存储库中添加了很多 PNG 文件,不幸的是设置 text eol=lf 不提交 Windows 换行符。

问题是 PNG header 必须 格式 %PNG\r\n 现在所有 PNG 图像都在 Git 中header %PNG\n 不能这样显示

我尝试将此行添加到 .gitattributes:

*.png binary

但是这些文件虽然在工作目录中是正确的,但仍然显示为未更改并且 git add 什么都不做。

我设法通过检查损坏的版本并手动编辑来修复单个文件,但我希望有一种不那么乏味的方法。

如何在不修改单个文件的情况下修复我的存储库?

我边写问题边自己解决了:

  1. 从存储库中删除所有 PNG 文件但保留工作副本:

    git rm --cached **/*.png
    
  2. 重新添加

    git add **/*.png
    
  3. 准备提交!