首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git和pbxproj

Git和pbxproj
EN

Stack Overflow用户
提问于 2009-10-11 01:28:13
回答 4查看 22.1K关注 0票数 33

我看了一个开源的Mac应用程序,他们给出了一些.gitignore的建议值。他们就是我所期待的..。

然而,他们也建议在.gitattributes文件中加入一个条目:

*.pbxproj -crlf -diff -merge

我并不是最了解git的人,所以我想知道添加这一行到底有什么好处?具体做些什么?我只在这个one project中看到过这个建议,如果这是正常的做法,我现在应该会在其他地方看到它。所以我很好奇它是如何具体应用于pbxproj文件的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-10-11 01:33:20

pbxproj文件实际上不是人类可合并的。虽然它是纯ASCII文本,但它是JSON的一种形式。从本质上讲,您希望将其视为二进制文件。

下面是各个标志的作用:

-crlf:不使用crlf <=> cr转换

-diff:不对文件进行比较

-merge:不尝试合并文件

出自Scott Chacon的Pro Git一书

有些文件看起来像文本文件,但实际上应该将其视为二进制数据。例如,Mac上的Xcode项目包含一个以.pbxproj结尾的文件,它基本上是由记录构建设置的集成开发环境写到磁盘的JSON (纯文本javascript数据格式)数据集,等等。虽然从技术上讲它是一个文本文件,但因为它都是ASCII格式,所以您不会希望将其视为文本文件,因为它实际上是一个轻量级数据库-如果两个人更改了它,您不能合并内容,并且差异通常没有帮助。该文件是供机器使用的。本质上,您希望将其视为二进制文件。

票数 28
EN

Stack Overflow用户

发布于 2010-04-28 19:45:52

在提交时,比较通常很有用,可以用来检查已经更改了哪些内容。因此,我发现保持差异的能力是有用的,但只是防止合并。因此,我在.gitattributes文件中使用了以下代码:

*.pbxproj -crlf -merge

另外,有没有人尝试过对pbxproj文件使用merge=union?请参阅:Should I merge .pbxproj files with git using merge=union?

票数 7
EN

Stack Overflow用户

发布于 2014-08-03 13:29:25

我编写了一个名为xUnique的python脚本来解决这个合并冲突问题。

此脚本执行以下操作:

  • 将所有24个字符的UUID替换为项目范围内唯一的32个字符的MD5摘要,并删除任何未使用的UUID(通常是由于之前的粗心合并造成的)。这将防止重复的UUID,因为不同的机器/Xcode在此文件中生成不同的UUID。Xcode可以识别它,并且可以打开该项目。在此过程中,删除项目文件中的所有无效行
  • 对项目文件进行排序。我写了一个具有更多新功能的python version of sort-Xcode-project-file from Webkit team:支持对script

进行排序的python versionsort-Xcode-project-file from Webkit team复制script创建新文件即使没有做任何更改,这样可以减少使用此python version后的提交次数

有关xUnique的更多详细信息和更新,请访问README

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1549578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档