文件引用 (fileRef)冲突
怎么判断?
看冲突的地方是不是两个fileRef指向不同的文件
- 解决办法:
手动project.pbxproj中搜索>>>找到冲突的位置,然后把两个都保留下来
非文件引用 (fileRef)冲突
- 解决办法:
先删掉一条引用记录,解决冲突后,再手动把被删掉引用的文件重新拉进项目
-
详细解决步骤
- 先备份你自己写的导致冲突的那部分代码文件(冲突的地方可以看到)
- 在project.pbxproj中删除自己写的冲突那部分代码的引用,保留同事的代码引用(此时会发现Xcode左边目录中你的代码没了)
- 将自己写得那部分代码重新拉进项目对应的目录(此时build就成功了)
- 同事pull代码后可能会报错(就是同事项目目录里面你那部分代码是灰色的,让同事从finder里面引入进项目目录再build就行了)
其他的解决办法:
约定型
需要增加文件时先增加完空文件后立刻 checkin 一次,让别人每次改动 pbxproj 的时候改动之前 checkout 一次,保证有交叉时间是可能性最小
就是你先创建一个空文件,生成了一个引用后,就push一遍代码。然后让别人pull,让他在创建新文件之前就已经有了你创建的空文件和生成的引用,这样相当于在你之后创建新文件,而不是同时创建了。
解决型
xUnique
注意,多人协作的时候,如果团队中的其中一个人使用了 xUnique,所有人就都要用 xUnique,否则 project.pbxproj 就会全乱掉。
参考
建议大家看看这篇文章,总结的很详细到位
https://bingozb.github.io/11.html
网友评论