知行

git下查看.docx文件的差异

Git版本控制下查看.docx文件的差异

首先需要安装docx2txt,余下载时版本v1.4。下载后按照INSTALL文件所述安装,安装完成后,docx2txt.pldocx2txt.sh文件被安装到/usr/local/bin中。

新建一个名为docx2txt的脚本文件,它的内容如下:

#!/bin/bash
docx2txt.pl $1 -

记得更改这个文件的权限:

chmod a+x docx2txt

然后把文件移到/usr/local/bin中。

新建一个文件夹worddiff,并纳入git控制:

mkdir worddiff
cd worddiff
git init

// 创建my_file.docx,并添加一些内容,然后
git add my_file.docx
// 提交
git commit -m "Initial commit"

my_file.docx添加一些内容,此时运行git diff你会发现看不出差别

diff --git a/my_file.docx b/my_file.docx
index db8cc51..5673e8b 100644
Binary files a/my_file.docx and b/my_file.docx differ

你需要告诉Git怎样比较非纯文本文件的差异。

设置.gitattributes:

echo "*.docx diff=word" > .git/info/attributes

添加下面配置到~/.gitconfig中:

[diff "word"]
    binary = true
    textconv = docx2txt

# add a new alias
[alias]
    wdiff = diff --color-words

运行

git wdiff my_file.docx 

出现了可以阅读的结果:

index db8cc51..f4ce9aa 100644
--- a/my_file.docx
+++ b/my_file.docx
@@ -1 +1,2 @@
diffDiff docx
Hello

参考文档: