![]() |
1
129
自SDK发布以来,我一直在研究iPhone应用程序,大部分时间都花在了与多个开发人员合作的团队上。 事实是,不允许合并该.pbxproj文件比它有帮助要有害得多。正如您所说,当您添加一个文件时,除非其他人获得该文件,否则他们还必须将其添加到他们的项目中-在任何大小的应用程序中,这很糟糕,而且它也会带走源代码控制的巨大好处,因为您不能通过git真正恢复到完整的早期项目状态。 .pbxproj文件只是一个属性列表(类似于XML)。根据经验,只有两个人同时添加了文件,才会发生合并冲突。99%的合并冲突案例中的解决方案是保留合并双方,对于Git来说,这至少涉及删除任何行。事实上,这很常见,以至于我创建了一个简单的shell脚本来修复git中处于合并状态的.pbxproj文件,我从项目目录(在类级别)中运行它:
最坏的情况是,如果它失败了(您要求Xcode加载项目,但未能加载),您只需删除.pbxproj文件,从git中签出master,然后重新添加文件。但是,在使用这个脚本的几个月里,我从来没有遇到过这样的情况,我还与其他几个开发人员一起全职开发iPhone应用程序。 您可以尝试使用另一个选项(在下面的注释中指出)代替脚本,将此行添加到.gitattributes文件中:
然后,git将始终对.pbxproject文件进行合并,其效果与我提供的脚本相同,没有任何额外的工作。 最后,这里是我的完整.gitignore文件,显示了我将它设置为忽略的内容,因为有一些事情是您不想要的-在我的例子中,实际上只是Emacs残留物和整个构建目录:
|
![]() |
2
8
这在xcode 4.6和git 1.7.5中适用。 添加并提交.gitattributes文件:
我已经和另一个团队成员测试过了,效果很好。 摘自: http://robots.thoughtbot.com/post/33796217972/xcode-and-git-bridging-the-gap |
![]() |
3
6
坦率地说,现有的答案是误导性的。
如果你
从未
删除或重命名文件,然后使用
然而,在现实世界中,有时我们确实需要删除或重命名文件。合并差异而不做任何修改 很多问题 在这种情况下,这些问题通常会导致“工作区完整性-无法加载项目”问题,这使得您甚至无法运行项目。 到目前为止,我得到的最佳解决方案是:
1)设计好项目,在开始时添加所有需要的文件,这样您很少需要更改
2)使你的特征变小。不要在一个分支中做太多的事情。
3)出于任何原因,如果需要修改文件结构并在
|
![]() |
4
3
简短的回答是,即使你不把那一行包括进来
详情请参见此处: Git and pbxproj
更新:
即使Git图书
still agrees
有了这个答案,我就不再这样做了。我的版本控制
|
![]() |
5
2
我确实创建了一个python脚本,可以处理xcode项目文件中的合并冲突。 如果您想尝试一下,可以在这里查看: https://github.com/simonwagner/mergepbx 您必须将其安装为合并驱动程序,这样当您的项目文件中存在合并冲突时,将自动调用它(readme.md将告诉您如何执行该操作)。
它应该比使用好得多
然而,这个项目仍然是阿尔法的,不要期望它理解所有的项目文件。 |
![]() |
Lorenzo Zorri · 如何根据文本字段的内容动态调整其宽度? 8 月前 |
![]() |
Rashik · 为什么Spacer()会自动扩展我的VStack 1 年前 |
![]() |
lucycoco · 如何解决pod安装问题并成功运行pod安装? 1 年前 |
![]() |
Viktor Sec · 如何自动将字符串添加到Xcode字符串目录? 1 年前 |
![]() |
Rue Vitale · 定位UILabel 1 年前 |