Das Standard-diff
von Git zeigt nicht die Unterschiede zwischen Bilder.
Das ist normal: es ist nicht dafür gedacht. Trotzdem wäre es super, wenn
Git Bildänderung wie Codeänderung zeigen würde, oder? Mindestens was
schöner als...
$ git diff
diff --git a/es-ES/images/autobuilder.png b/es-ES/images/autobuilder.png
index 6f5f6eb..6f0dd78 100644
Binary files a/es-ES/images/autobuilder.png and b/es-ES/images/autobuilder.png differ
So etwas...
Das habe ich mit einem Script gemacht, das ImageMagick nutzt, um Bilder zu vergleichen. Hier zeige ich, wie du das Gleiche machen kannst.
In auf Debian basierte Distributionen muss man für die Installierung Folgendes ausführen:
sudo apt install imagemagick
Dann schreib in einer Datei mit Ausführungsberechtigungen in einer
Pfad, auf den über die Umgebungsvariable $PATH
zugegriffen werden
kann, folgenden Code, den ich in diesem Tutorial in ~/bin/git-imgdiff
behalte:
#!/bin/sh
compare $2 $1 png:- | montage -geometry +4+4 $2 - $1 png:- | display -title "$1" -
Dann sag Git mit dem Datei .gitattributes
die Dateiendungen, die du
als Bilder betrachten willst. Wenn es existiert nicht, lege es im
Hauptverzeichnis eines Git Projekts oder in deinem $HOME
Verzeichnis
mit folgenden Zeilen für GIF, PNG und JPG an; oder wenn die Datei schon
existiert, füge sie hinzu:
*.gif diff=image
*.jpg diff=image
*.jpeg diff=image
*.png diff=image
Damit die .gitattributes
-Konfiguration, die du im $HOME
-Verzeichnis
gespeichert hast, für alle Git-Projekte geladen wird, musst du den
folgenden Befehl ausführen:
git config --global core.attributesFile ~/.gitattributes
Nun konfiguriere Git so, damit es das Script zuvor erstellte ausführt, wenn es Bilder vergleicht:
git config --global diff.image.command '~/bin/git-imgdiff'
So einfach. Du kannst das Script an deine Bedürfnisse anpassen.
Wenn es genügt dir nur, zu wissen, welche Metadaten geändert haben,
kannst du exiftool
installieren, um so etwas zu zeigen:
index 6f5f6eb..6f0dd78 100644
--- a/es-ES/images/autobuilder.png
+++ b/es-ES/images/autobuilder.png
@@ -1,21 +1,21 @@
ExifTool Version Number : 10.10
-File Name : vHB91h_autobuilder.png
-Directory : /tmp
-File Size : 44 kB
-File Modification Date/Time : 2020:03:09 02:12:08+01:00
-File Access Date/Time : 2020:03:09 02:12:08+01:00
-File Inode Change Date/Time : 2020:03:09 02:12:08+01:00
-File Permissions : rw-------
+File Name : autobuilder.png
+Directory : es-ES/images
+File Size : 63 kB
+File Modification Date/Time : 2020:03:09 01:35:22+01:00
+File Access Date/Time : 2020:03:09 01:35:22+01:00
+File Inode Change Date/Time : 2020:03:09 01:35:22+01:00
+File Permissions : rw-rw-r--
File Type : PNG
File Type Extension : png
MIME Type : image/png
-Image Width : 796
-Image Height : 691
+Image Width : 794
+Image Height : 689
Bit Depth : 8
Color Type : RGB
Compression : Deflate/Inflate
Filter : Adaptive
Interlace : Noninterlaced
-Significant Bits : 8 8 8
-Image Size : 796x691
-Megapixels : 0.550
+Background Color : 255 255 255
+Image Size : 794x689
+Megapixels : 0.547
Wenn das der Fall ist, lies weiter.
Installiere exiftool
. In auf Debian basierte Distributionen ist das
auszuführen:
sudo apt install libimage-exiftool-perl
Dann füge Folgendes der Datei hinzu.
*.png diff=exif
*.jpg diff=exif
*.gif diff=exif
Endlich führ aus...
git config --global diff.exif.textconv exiftool`
In den zwei gezeigten Beispielen kannst du optional nicht --global
hinzufügen, damit das Tool wird nur für das Git-Projekt, wo du
gerade arbeitest, benutzt.
Ich hoffe, es ist jetzt einfacher für dich die Änderung von Bilder in einem Projekt zu überprüfen.
Kommentare