加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Git合并二进制文件(特别是Xcode项目文件)

发布时间:2020-12-14 19:45:02 所属栏目:百科 来源:网络整理
导读:我在git下有一个 Xcode项目,而且我的“master”分支有一个“实验性”分支.自分支以来,两个分支都有分歧(所以没有快进!),我正在将“实验”合并到我的“主”分支中. 我已经设置了一个.gitattributes文件来将特定的Xcode文件(project.pbxproj)视为二进制文件,
我在git下有一个 Xcode项目,而且我的“master”分支有一个“实验性”分支.自分支以来,两个分支都有分歧(所以没有快进!),我正在将“实验”合并到我的“主”分支中.

我已经设置了一个.gitattributes文件来将特定的Xcode文件(project.pbxproj)视为二进制文件,因为它应该被视为二进制文件.但是,我不确定如何合并它.我不确定那个特定文件是做什么的,但是如果它处理了哪些文件被添加到项目中,我就无法合并它们,因此我必须手动将某些文件添加回项目(可能不是记得他们所有).其他人如何处理这种情况?

此外,我已经读过你必须手动更新二进制文件(显然)或复制不同的版本.但是,一旦进入合并过程,我工作副本中的文件就是“主”版本.我如何访问“实验”版本?我无法检查它,因为它会破坏合并过程.

谢谢你的时间!

解决方法

一般来说,对于二进制文件,我建议使用 copy-merge type of .gitattribute directive.
也就是说,我只是复制来自合并远程端的文件.

但是对于.pbxproj文件,这可能不是一个好的选择,如described here.

Wrapping these files would only make the problem worse as far as I can tell – as you wold be completely unable to merge changes.
While you can merge project files in some cases,it’s not something that you should
count on being able to do. The basic recommendation is to avoid editing the project files at the same time as someone else.

我喜欢版本化项目文件(如ones for Eclipse),只有我知道它们是:

>经常不修改(当然不是每个开发人员都修改)
>仅使用相对路径
>没有一个工作站的数据细节

简而言之,如果这些文件不是要合并的(或者只是很容易合并),我希望它们在VCS中.在您的情况下,首先将它们放入所述VCS中可能没那么有用.

注意:如Git manual中所述:

During the merge,the index holds three versions of each file. Each of these three “file stages” represents a different version of the file:

$git show :1:file.txt  # the file in a common ancestor of both branches
$git show :2:file.txt  # the version from HEAD.
$git show :3:file.txt  # the version from MERGE_HEAD

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读