Então, tudo o que você precisa fazer é associar um ou mais padrões de arquivo ao filtro pdfconv. Você pode fazer essa configuração criando um arquivo .gitattributes na raiz do repositório.
Uma vez configurado, o git diff primeiro vai executar o arquivo binário através do script do conversor configurado e vai comparar o resultado do conversor. A mesma técnica pode ser aplicada para obter comparações úteis de todos os tipos de arquivos binários, por exemplo: zips, jars e outros arquivos: usar o unzip -l (ou similar) em vez do pdf2html vai mostrar os caminhos que foram adicionados ou removidos entre as imagens de commits: o exiv2 pode ser usado para mostrar alterações de metadados, como documentos de dimensões de imagem: existem ferramentas de conversão para transformar .odf, .doc e outros formatos de documento em texto sem formatação. Em último caso, as strings em geral funcionam para arquivos binários onde não existe um conversor formal.
O comando git diff pode passar uma opção explícita do caminho do arquivo. Quando um caminho de arquivo é passado para o git diff, a operação de comparação vai ter o escopo definido no arquivo especificado. Os exemplos abaixo demonstram esse uso.
Este exemplo tem como escopo o ./path/to/file quando solicitado, ele vai comparar as alterações específicas no diretório ativo, com o índice, mostrando as alterações que ainda não foram testadas. Por padrão, o git diff vai realizar a comparação com o HEAD. Omitindo HEAD no exemplo acima, o git diff ./path/to/file tem o mesmo efeito.
Quando o git diff é solicitado com a opção --cached, a comparação vai utilizar as alterações em etapas com o repositório local. A opção --cached é sinônimo de --staged.