代码之家  ›  专栏  ›  技术社区  ›  Andrey Bushman

Git可以合并zip存档、MS Office文档等吗?

  •  5
  • Andrey Bushman  · 技术社区  · 11 年前

    Git for Windows。

    我正在学习Git。我的项目有一些 projectname.hmxz 文件,而不是简单的文本文件。此文件是一个zip存档(扩展名已更改)。它是由使用的项目的特殊文件 Help&Manual 程序我可以将Git用于此类项目吗?这让我很不安,因为每个分支都会修改 项目名称.hmxz 文件,它不是通常的文本文件。Git如何将此类分支与单个 项目名称.hmxz 文件我认为MS Office文档也会遇到同样的问题:xls、doc等(因为它也不是纯文本)。

    我对通常的文本文件没有问题,但这种情况如何?

    4 回复  |  直到 11 年前
        1
  •  5
  •   Community Mohan Dere    6 年前

    Zip文件:

    不,它们是二进制的。对于二进制文件,合并冲突仅作为“使用版本A”或“使用版本B”解决。

    但如果您从某个源代码构建它们,也许您可以对该源代码进行版本控制。

    MS Office文件:

    不,不可能。但它们通常被视为文本文件,因此在第一次合并时,git会损坏它们。您应该手动配置git以将其视为二进制文件。遵循以下说明: https://stackoverflow.com/a/30731818/2790048

        2
  •  1
  •   werkritter    11 年前

    除了选择一个版本而不是另一个版本,你做不了什么。

    说你在树枝上 here 并希望将其与分支合并 there 。为了做到这一点,您必须使用 ours 的选项 recursive 策略(顺便说一下,注意 递归的 是默认合并策略):

    git merge --strategy=recursive -Xours there
    

    做相反的事情 那里 ),运行:

    git merge --strategy=recursive -Xtheirs there
    

    请注意,它会影响所有文件的冲突,而不仅仅是二进制文件!

    有关详细信息,请参阅 git-merge(1) 手册页。我不知道Windows的等效版本,但您也可以在以下链接中找到它: https://git-scm.com/docs/git-merge

        3
  •  1
  •   Community Mohan Dere    9 年前

    Git只能合并文本文件,但是。。。

    您可以将二进制文件转换为文本文件,并使用 textconv 选项,但如果您没有一个好的转换器,这就不重要了。

    检查 this answer on superuser 详细说明。

        4
  •  0
  •   Morty    7 年前

    虽然git不能本地合并二进制文件,但您可以配置自定义 merge-drivers 。因此,如果您拥有/编写的程序实际上能够合并两个文件,则可以使用该程序自动合并两个。然而,我能找到的唯一非演示驱动程序是 npm-merge-driver 。如果合并驱动程序失败,您仍需要手动合并。

    此外,您还可以配置 merge tools 单位为吉特。这样你就可以通过 two/three 文件的版本 program of your choice 再次,快速搜索没有显示如何使用Word编写脚本。然而,有很多博客条目详细解释了如何做到这一点,因此我只参考了手册。