TL;DR
console
$ git config diff.binaryfile.textconv dir
$ echo "*.bin diff=binaryfile" >> .gitattributes
textconvに与えるコマンド
| 第一引数 | にテキスト化したいバイナリのファイルパス |
| 標準出力 | にテキスト化された結果 |
となるようなコマンド。
そもそもバイナリファイルは大きくなりがちなので、全体的に XML とかにシリアライズするととんでもない長さの結果が出てくる。ある程度の構造単位でハッシュをとっていくようなプログラムが良さそうな気がする。
ちなみに、Windowsのdirコマンドはファイルを渡すと最重更新日時を含むテキストを返してくれるので、編集していると差分が出ます。(これだけでは役に立ちませんが)
問題点
-
git diffでのみ使われる。(Github ページや、 VSCode の GitHistory では見られない) -
git diffの際に一時的にコンバートされるにすぎないので、コミットごとに差分が取られるわけではない。もちろんマージもできない。