Git pode lidar com diffs binários personalizados como texto e, portanto, exibir mensagens diff significativas se configurado corretamente.
Basta adicionar o seguinte ao seu .gitconfig:
[diff "png"]
binary = true
textconv = hexdump -v -C
[diff "jpg"]
binary = true
textconv = hexdump -v -C
[diff "jpeg"]
binary = true
textconv = hexdump -v -C
<b> Tem que </b> haver uma definição diff + textconv para cada extensão que você deseja manipular.
Para diferenças mais complicadas, você pode querer definir uma ferramenta de terceiros como ImageMagick para imagens ou pdfinfo para arquivos PDF:
[diff "pdf"]
binary = true
textconv = pdfinfo
O binary
booleano é útil quando <i> “… você deseja usar textconv para converter arquivos em uma representação ASCII para visualização humana, mas de outra forma tratá-los como arquivos binários.” </i>
Para uma compreensão mais aprofundada desta parte da personalização do git, verifique este link nos chamados <b> atributos do git </b>.