git - 如何强制 git diff 创建 git 二进制补丁?
问题描述
这是两个包含非 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<Oq!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 二进制补丁?
解决方案
推荐阅读
- java - XML 文档设计
- r - 在密度直方图上添加概率曲线
- python - 我怎么能不计算我的字符串之间的空格
- c# - 使用 MYSQL 将两个值插入 combobox.item.add
- c# - 为什么脚手架不创建 ComboBox?
- java - 需要 repaint() 停止覆盖我以前的图形
- visual-studio - Directory.Build.targets 用于 Visual Studio 中没有目标的项目文件
- php - php正则表达式搜索
- php - 如何从php中的数组索引中检索数据?
- c# - 如何从 dataGridView 中的数据库中自动替换 ID 以替换新记录?