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
の際に一時的にコンバートされるにすぎないので、コミットごとに差分が取られるわけではない。もちろんマージもできない。