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