如何查看git中的diff是否是二进制文件的添加/删除?

时间:2013-01-26 21:05:40

标签: git text-parsing

我的差异看起来像:

--- a/binarytest copy.png
+++ /dev/null
@@ -1,863 +0,0 @@\n-8950 4e47 0d0a 1a0a 0000 000d 4948 4452
-0000 00c8 0000 00c8 0803 0000 009a 865e
-ac00 0000 0970 4859 7300 000b 1300 000b
-1301 009a 9c18 0000 0a4f 6943 4350 5068
-6f74 6f73 686f 7020 4943 4320 7072 6f66
-696c 6500 0078 da9d 5367 5453 e916 3df7
-def4 424b 8880 944b 6f52 1508 2052 428b
-8014 9126 2a21 0910....

这基本上是删除二进制文件。如何解析这个以便始终知道二进制文件已被删除?

我正在尝试查看它是否是已删除的二进制文件而不是文本文件。这可能吗?

1 个答案:

答案 0 :(得分:2)

我只做了一些简单的检查。

当我添加删除的二进制文件然后执行git diff HEAD^时,我得到的结果如下:

diff --git a/junk.bin b/junk.bin
deleted file mode 100644
index 0a3970d..0000000
Binary files a/junk.bin and /dev/null differ

当我删除非二进制文件并执行相同的git diff HEAD^时,我得到以下结果:

diff --git a/text.txt b/text.txt
deleted file mode 100644
index a496efe..0000000
--- a/text.txt
+++ /dev/null
@@ -1 +0,0 @@
-This is a text file

我的建议是使用git diff命令VS直diff。 Git会告诉你它是不是二进制文件,也不是直接的差异(即没有'删除'文本......只是删除文件)。