在Github上查看.docx文件,并在.docx文件格式上使用git diff

问题描述 投票:7回答:6

我有两个问题:

  1. 有没有办法在.docx上查看Github文件?我们已将所有作业上传到Github,但我们无法在浏览器中查看它。如果我们可以在浏览器中查看这些.docx文件而不下载文件会很好。
  2. 如何在git diff文件格式上使用.docx?我试图使用catdoc,但它对我不起作用。我想我之前在Windows上使用git diff用于.doc格式,但它在Mac上不适用于我。

非常感谢。

git github
6个回答
6
投票
  1. 回答第二部分问题。已经是一个老帖子,但在前10名中没有答案就出现了。通过以下设置,您可以在docx文件上找到一个穷人的差异。

在.gitattributes中使用:

*.docx diff=zip

在.git / config中使用:

[diff "zip"]
      textconv = unzip -c -a

作为奖励我的旧单词/ excel和新单词/ excel的设置:

在.gitattributes中使用:

*.doc diff=word
*.xsl diff=excel
*.xlsx diff=zip
*.docx diff=zip

在.git / config中使用:

[diff "word"] 
    textconv = strings
[diff "excel"]
    textconv = strings
[diff "zip"]
    textconv = unzip -c -a

3
投票

回答你的第二个问题 -

通常当你尝试

git diff filename.docx

你会得到表格的输出 -

二进制文件a / filename.docx和b / filename.docx不同

不是很有帮助。一个完美的方法是使用Pandoc

  • 从系统上方的链接安装Pandoc。
  • 创建或编辑文件〜/ .gitconfig(linux,Mac)或“c:\ Documents and Settings \ user.gitconfig”(Windows)添加(或使用git config --global --edit[diff "pandoc"] textconv=pandoc --to=markdown prompt = false [alias] wdiff = diff --word-diff=color --unified=1`
  • 在带有.docx文件的git控制目录中,创建或编辑文件.gitattributes(linux,Windows和Mac)以添加 *.docx diff=pandoc
  • 您可以提交.gitattributes以便它可以在其他计算机中使用,但是您需要在每个要使用的新计算机中编辑〜/ .gitconfig。
  • 现在,您可以看到自上次提交以来对.docx文件所做的更改的漂亮颜色差异 git wdiff file.docx

更多细节可以在here找到。


1
投票

有没有办法在Github上查看.docx文件?

尚未(2016年第4季度),除非Word文档是纯文本。

如何在.docx文件格式上使用git diff?

从git for Windows 1.9.5和Git for Windows 2.5.3(2015年9月和issue 355)开始,您不必进行任何自定义设置:

git diff -- myWord.docx

那可行。 (它也为.doc.pdf odes)

Git for Windows 2.10.1开始,你也可以使用diff docm和dotm(参见PR 128)。


0
投票

这是有问题的,并且据我所知,在github或任何其他git主机上都不可能。虽然git可用于版本化任何东西,但像git diff这样的东西会以纯文本形式返回两个版本的差异。难以辨认。

我觉得这不是没有理由的。世界上有无限的文件格式,其中许多是专有的。因此,代替支持像VLC这样的每种格式,git使用文本文件来处理所有事情。

即使git以某种方式支持docx,它也无法在终端内显示格式更改,更不用说cmd了。如果它只是文本,最好将其存储为文本文件。或手动签出以前的版本以比较更改。


0
投票

.docx文件实际上是一个zip(你可以改变文件类型并在里面戳)。如果将.docx视为目录,则在主文件中将IS存储为XML样式文件,并且文本不是二进制文件。

可悲的是,没有carraige回归。否则,在目录中的'document.xml'文件上执行文本dif将非常有用。作为XML文件行,文件中的brreaks不会影响内容,因此可以添加它们。


0
投票

在Stackoverflow和谷歌周围盘旋多年之后,我今天才发现官方git书有一个walkthrough

  1. 安装docx2txt。在Ubuntu 16.04上,我刚刚使用了官方存储库: sudo apt-get install docx2txt
  2. 写一个包装脚本(docx2txt需要一些参数。)如下: #! /usr/bin/env bash docx2txt "$1" -
  3. 我打电话给脚本d2t,所以我把它添加到我的$PATH的某个文件夹中。记得让它可执行,以便git可以运行它。 chmod +x d2t mv d2t /somewhere/in/your/PATH
  4. 现在通过将此块添加到.git/config使您的存储库意识到这一点: [diff "word"] textconv = d2t *注意:book建议使用命令,我假设您可以使用--global标志将此过滤器应用于所有回购,如果您愿意: git config --global diff.word.textconv d2t
  5. 对于您希望其工作的存储库,请编辑.gitattributes*.docx diff=word
  6. 现在你应该能够git diff你的docx文件。 diff --git a/goodpoint.docx b/goodpoint.docx index 0d6e78c..4476023 100644 --- a/goodpoint.docx +++ b/goodpoint.docx @@ -1,7 +1,7 @@ Making many good points 1. Overview -- 2l3k23lk +- this is a test - 23lkjl2k3j 2. Remarks

编辑:在git 2.7.4上试过这个。你不能在没有做更多工作的情况下补丁中的checkoutadd

© www.soinside.com 2019 - 2024. All rights reserved.