Как я могу заставить git diff создать бинарный патч git? - PullRequest
3 голосов
/ 12 июля 2020

Вот два небольших файла с данными, отличными от ASCII, но git diff считает их текстовыми, а не двоичными.

echo -n -e '\x01\xff\xdf' > bin1
echo -n -e '\x01\xdf\xff' > bin2
git diff --binary bin1 bin2 

Результат:

diff --git a/bin1 b/bin2
index 802dc8e..c39b638 100644
--- a/bin1
+++ b/bin2
@@ -1 +1 @@
-^A<FF><DF>
\ No newline at end of file
+^A<DF><FF>
\ No newline at end of file

Но если я попробую это на некоторых "реальных" двоичных файлах, git создает правильный двоичный патч ("GIT двоичный патч" в файле)

git diff --binary /bin/true /bin/false

Результат

diff --git a/bin/true b/bin/false
index 9d88a26042a65272a827e7aa07cbc4994a329a46..3db9b1d03120462d4d5c839f4ebc4a596c031618 100755
GIT binary patch
delta 594
zcmdn-k#WaI#tkh@BF5TcGAG5SU)ABu-g)IiNO0i(1G_fQV4A?q_-L~x-)W9|wjGQN
z3=D^ZJ-Y2YIzPWS$;!as(QE2p%)qdp4Jh$~<NyEvK!F`V0gqnW#X#ys>0gkL?Q{^^
z6T*JP0%Y$s0;=hb<^U?64N~5D|Ap4S|NmPLl(++h`k_MN5FvK3z0o#@J-T_PMkoL^
z+OkC|F!=Pc7J?M^ikgBc)3rcDT@6pZ5L9PicztF+$gwX(fh51Y3&ZC1;suP1>XQ{D
z`|IZzfOTC1Q??w2ARg}}5bwB)N&-+9n2`Zybh4;;^s?rFBs)V?41ktx2D58a1Ux!@
zR2)1yT~vU+V2y&R2mlF400rW~0xl{FKz1yYtpSp>n5-wIz{ob)UrIvO87Se~`h>sb
zFwn9W=D$FJ#j5}cn_f}7$t_Z9jH;7YOZjo+>4SuHy(TkCyE0Z!c9&LTOq!f0oya(2
z^95;k6~<SaZ`hZyF#ehB@A8UKaI%$aFJtrO6RxpLjH;W}Jmi>I(h_ruC%bzcn9Sjw
z%$}B*nNwPny1B^v886RnkT-q!1e%$c$~UJ(-Vp-EwquSxi-}Q^p_yTFvZbN9rFn{}
uQL;g*SyGZ^ib<M*sfnqvsbNxDvO!X!UP@|GX*$S^H>=X@H*YCm;Q#>dLB9_G

delta 593
zcmdn-k#WaI#tkh@BBvgnTXbUUr;CAWUc2nsC)*;rhwbR*8B7zn86R%e<U7q#&un<$
zaIi<Wok!>A7iU-*7(9ASos1b6_OmfCFudUY|NlQwU>8upqt|vRka|(^7bIjm6U6p`
zu%EI3*$0e(YPzF2fXe5Bly}~Lq5JRu|JDN~E<mA)P$4OZ5R2h~=))e}yt5;06o9&H
zc_I}Ue0o{SK&pC0t-zG&W}u0#h9_T$t1~dXK5zK{g&ZRTLz*7Hd<)QN3=I784x87D
z7ceraO;(WXub*uI)_WC9*|Hmgc)S-uyyGq^2_Ow1Mh2MC$)e)X%bE?6><m#c09v^T
z%&t)p@aXhWaq#GLQ2}~{H4>^K03;v*6o>;0xTq)q*)dSI21wFkvYwOzBkN>;DG6C8
zpoDMh6aJRNK+9g3{{n><uL3A|dPQv~w@9fms!U!j<;Rh$4-(S#oXjZg%2+koU0RJX
zadMt?BIESU7o^!$7+-F_VPD3=_<ORy%PU5K$yTntj7^(QxW+Ous%%#CkYi#lDJq@p
z;dNj#yLSqEacOdLYH{)ABJXFsJexqi^yCw0W@0MYoDz9Q2pHLpIrc0jsfNj^iAKp5
zNv3H=DTbzoiOH!+CMHSANvVb@7AA(KNy!Fg$)<WKsY#{jATw;gby{!UQozCi00~IM
A#Q*>R

Как я могу заставить git diff создать бинарный патч git?

...