Git可以合并zip-archives,MS Office文档等吗?

时间:2015-07-17 13:58:59

标签: git git-merge

Git for Windows。

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

我对常见的文本文件没有问题,但这种情况怎么样?

3 个答案:

答案 0 :(得分:3)

Zip文件:

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

但是如果你从某些来源构建它们,也许你可以对该源进行版本控制。

MS Office文件:

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

答案 1 :(得分:1)

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

您可以将二进制文件转换为文本文件,并使用配置中的textconv选项对它们进行区分,但如果您没有一个好的转换器,这并非易事。

检查this answer on superuser以获取详细说明。

答案 2 :(得分:1)

除了选择一个版本而不是另一个版本之外,你做不了多少。

说您已经在分支here上,并希望将其与分支there合并。为此,您必须使用ours策略的recursive选项(顺便说一句,请注意recursive是默认的合并策略):

git merge --strategy=recursive -Xours there

要执行相反的操作(支持there中的文件),请运行:

git merge --strategy=recursive -Xtheirs there

要小心它会影响所有文件的冲突,而不仅仅是二进制文件!

有关详细信息,请参阅git-merge(1)联机帮助页。我不知道Windows等价物,但您也可以通过以下链接找到它:https://git-scm.com/docs/git-merge