在Git
网站上,有一个详细说明版本控制带有.doc
的Microsoft Word catdoc
文件。
http://git-scm.com/book/en/Customizing-Git-Git-Attributes
但是,我意识到这对.docx
文件不起作用。您似乎需要docx2txt
或unoconv
而不是catdoc
(found here)。我决定无条件地使用docx2txt
,但我被卡在docx2txt
安装到Mac OS X中。
This有点说明了这些步骤。根据我的理解,你所需要的只是docx2txt.pl
在某个合理的地方。我以为/usr/local/bin/
会这么做。我在那里复制了它。然后,根据the instruction,我尝试了以下内容:
$ cd /usr/local/bin/
$ echo '#!/bin/bash
docx2txt.pl "$1" -' > docx2txt
当我尝试这个时:
$ docx2txt
我得到了
Can't read docx file <>!
所以,docx2txt
似乎在路径中。
然后我在存储库文件夹(ASCII,LF)中编辑了.gitattributes
以添加以下行:
*.docx diff=wordx
然后,我还在存储库中编辑了.git / config文件,如下所示:
[diff "wordx"]
binary = true
textconv = docx2txt
因为存储库已经在使用,所以我没有git init
。我在存储库中编辑了一个.docx Word文件,然后在终端中输入了git diff
。但结果并不成功。
Binary files a/foo/foo.docx and b/foo/foo.docx differ
有人可以有任何建议吗?
答案 0 :(得分:3)
感谢巴生,我做到了。现在我可以在Mac OS X(10.9)的Terminal.app中区分.docx文件。但是这个不能与SourceTree GUI无缝协作。下面与巴生基本相同,但略有修正。
从http://docx2txt.sourceforge.net/下载并安装 docx2txt 转换器
wget -O doc2txt.tar.gz http://docx2txt.cvs.sourceforge.net/viewvc/docx2txt/?view=tar
tar zxf doc2txt.tar.gz
cd docx2txt/docx2txt/
sudo make
然后制作一个小包装脚本,使docx2txt输出到STDOUT
echo '#!/bin/bash
docx2txt.pl "$1" -' > /usr/local/bin/docx2txt
chmod +x /usr/local/bin/docx2txt
存储库中(Word).docx diffing 的Git属性
echo "*.docx diff=wordx" >> .gitattributes
git config diff.wordx.textconv docx2txt
如果不应该通过项目提交设置,请使用.git/info/attributes
。
(Word).doc diffing
的Git属性echo "*.doc diff=word" >> .gitattributes
git config diff.word.textconv strings