Um Glenns großartige Antwort zu ergänzen, habe ich Folgendes getan, um herauszufinden, welche Dateien fehlerhaft waren:
find . -name "*.png" -type f -print0 | xargs \
-0 pngcrush_1_8_8_w64.exe -n -q > pngError.txt 2>&1
Ich habe find und xargs verwendet, weil pngcrush nicht viele Argumente verarbeiten konnte (die von zurückgegeben wurden **/*.png
). Das -print0
und-0
ist erforderlich, um Dateinamen zu verarbeiten, die Leerzeichen enthalten.
Suchen Sie dann in der Ausgabe nach diesen Zeilen : iCCP: Not recognizing known sRGB profile that has been edited
.
./Installer/Images/installer_background.png:
Total length of data found in critical chunks = 11286
pngcrush: iCCP: Not recognizing known sRGB profile that has been edited
Und für jeden von diesen führen Sie mogrify darauf aus, um sie zu beheben.
mogrify ./Installer/Images/installer_background.png
Auf diese Weise wird verhindert, dass ein Commit jede einzelne PNG-Datei im Repository ändert, wenn nur wenige tatsächlich geändert wurden. Außerdem hat es den Vorteil, genau anzuzeigen, welche Dateien fehlerhaft waren.
Ich habe dies unter Windows mit einer Cygwin-Konsole und einer zsh-Shell getestet . Nochmals vielen Dank an Glenn, der die meisten der oben genannten Punkte formuliert hat. Ich füge nur eine Antwort hinzu, da sie normalerweise leichter zu finden ist als Kommentare :)