如果我将MS Office(例如.docx)或OpenOffice(例如.odt)文档放入git存储库,我该怎么办?

Nic*_*ick 8 git github

我把几个.docx,.txt.pdf存档到.git存储库.我可以打开,编辑,保存本地.docx文件; 但是,当我将它推送到github并将其下载回我的计算机时,Word抱怨它无法打开它.

为了.docx在github 上存储文件,我应该对git设置做一些必要的步骤吗?

Nic*_*kin 17

.gitattributes在工作目录中创建一个文件,并向其中添加以下行:

*.docx    binary
Run Code Online (Sandbox Code Playgroud)

为什么不设置core.autocrlf=false

这也很有用.但是,配置.docx为二进制格式不仅可以解决此问题,还可以解决潜在的合并问题.

这个问题的根源是什么?

http://git-scm.com/docs/gitattributes,"将文件标记为二进制"部分.请注意斜体部分.

Git通常通过检查内容的开头来正确猜测blob是否包含文本或二进制数据.但是,有时您可能希望覆盖其决定,因为blob在文件中稍后包含二进制数据,或者因为内容虽然在技术上由文本字符组成,但对于人类读者来说是不透明的.

.docxformat是包含xml和二进制数据的zip文件夹,例如图像.

Git将您.docx视为文本(而不是二进制)文件并替换了结束字符.作为Microsoft开发的格式,.docx可能正在使用CRLF,它可能已被远程存储库中的LF替换.当您直接从远程下载该文件时,它仍然有LF.

在二进制文件中,Git永远不会替换endline chars,因此即使远程存储库上的文件也会有正确的CRLF.

适用格式

这适用于任何文件格式,它是带有文本和二进制数据的压缩包.这包括: