git-lfsで、コンフリクトさせてみると以下のようなファイルができます。
version https://git-lfs.github.com/spec/v1
<<<<<<< HEAD
oid sha256:143976a5f15427e0f66e4285092df0691ba234ffdcf1fbea0927d4b055630471
size 11434893
=======
oid sha256:2b91d9f8ec063a318089974bfb19893f61752c6126449b137b5b531b562ebabf
size 11566529
>>>>>>> origin/master
で、この状態で、新旧のバイナリを比較してみてみたいですよね?
$ GIT_LFS_SKIP_SMUDGE=1 git checkout --theirs conflict.mp3
まずはこれでポインタファイル(最初に引用したgit-lfsのバージョン、oid、sizeが入ったファイル)のコンフリクトしてない状態にしておいて、次のコマンドを起動します。そうすると、lfsのファイル置き場にファイルが入ります。
ポインタファイルはテキスト処理的に作ってもOK(そっちの方がワークフォルダをいじらなくてすむ)
# バイナリファイルの実態の置き場を作る
$ mkdir -p .git/lfs/objects/2b/91
# ここでダウンロード発動
$ git lfs smudge --info conflict.mp3 < conflict.mp3 > .git/lfs/objects/2b/91/2b91d9f8ec063a318089974bfb19893f61752c6126449b137b5b531b562ebabf
最初のファイルの両方のoidをコピーしてくれば、ファイルの実態にアクセスできるので、比較できますよね。
ワークファイルをがんがん書き換えてよければ、単純に次のコマンドをそれぞれ叩いてファイルを取得すればOK
# リモートのファイルを取得
$ git checkout --theirs conflict.mp3
# 手元のファイルを取得
$ git checkout --ours conflict.mp3
このコマンドを実行した瞬間にダウンロードが発生します。