Git step by step 12 之二进制文件

二进制文件的识别
很多文件都会被Git自动识别为二进制文件,如doc,jpg等。
在进行git diff 操作时(当前工作目录与暂存区的内容不相同时),会有类似于下面的显示:

git diff
diff --git a/what.doc b/what.doc
index xxxxxxxxxx 100644
Binary files a/what.doc and b/what.doc differ



git diff
diff --git a/png.jpg b/png.jpg
index b6884cd..a2bd99b 100644
Binary files a/png.jpg and b/png.jpg differ

所以Git对于二进制文件是有识别能力的,且能鉴别二进制文件有没有被修改。

但是想要具体的显示出什么地方被改了,还需要Git属性的设置,并借助于一些外部工具。
像识别.doc文件时,可以先在工作目录(的根目录)中建立.gitattributes文件,用于Git属性
的设置。
然后再用git config XXX向.git/config文件时写一些配置参数。

[url=http://git-scm.com/book/zh/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-Git%E5%B1%9E%E6%80%A7]自定义 Git - Git属性[/url] 里有相应的介绍。
(它的英文版本介绍的更详细些: [url=http://git-scm.com/book/ch7-2.html]Customizing Git - Git Attributes[/url])(注意反强)
其中介绍说,操作分两步:
1、在.gitattributes文件中添加 *.doc diff = word,意思是在处理以.doc为后缀的文件时用word过滤器(这是个什么东西?)进行处理。
2、git config diff.word.textconv strings,意思是用strings(/usr/bin/strings)外部工具将word文档转变成text文本文件。
然后再git diff时,会显示哪一行被修改了。

可是,可是,按照这个方法有点行不通,换了几个版本库进行实验,结果都git diff不出来任何东西,甚至是在不进行配置时的differ信息也没了,坑爹。或许是版本问题,抽空看一下README在这一方面改动的介绍。

此外,像png所用到的外部工具exiftool,apt-get install时也搜不到的。


more:
[url=http://www.charlestonsw.com/versioning-word-documents-in-git/]Versioning Word Documents In Git[/url]
[url=http://xcafebabe.blogspot.com/2012/09/sexy-comparison-of-word-documents-with.html]windows下cygwin中Git diff Word documents(这个看上去好像可以)[/url]
[url=https://github.com/AndorChen/progit-cn/blob/master/chapter7.md#-4]自定义 Git[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值