You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SourceTree合并分支后Xcode不显示冲突标记且项目无法构建求助

解决SourceTree合并后Xcode不显示冲突标记的问题

我之前在使用SourceTree和Xcode协作时也遇到过完全一样的问题——明明知道有合并冲突,但就是找不到标记位置,项目还没法构建,真的很头疼。下面是我试过的有效解决步骤:

  • 先用纯文本编辑器检查文件:Xcode有时候无法正确渲染合并冲突标记(<<<<<<< HEAD、=======、>>>>>>> 分支名),尤其是当文件编码特殊或者是Xcode处理方式不同的类型(比如某些plist或资源文件)。把冲突文件用TextEdit、VS Code或者终端的cat 文件名命令打开,就能立刻看到标记是否存在。如果有的话,可以直接在那里解决冲突,再切回Xcode。

  • 确认是否是二进制文件冲突:Git无法自动合并二进制文件(比如图片、编译后的资源或者某些专有格式文件)。如果SourceTree标记文件有冲突但没有文本标记,在终端运行git status——二进制冲突会显示为"both modified",没有常规的冲突标识。这种情况你需要选择保留哪个版本:用git checkout --ours 文件名保留当前版本,或者git checkout --theirs 文件名采用父分支的版本,然后提交更改。

  • 刷新Xcode的项目状态:Xcode的缓存有时候会和Git的状态不同步。试试这些操作:

    • 完全关闭Xcode,重新打开项目。
    • 清理构建文件夹:按下Shift + Cmd + K清除缓存的构建文件。
    • 进入「源代码控制」菜单,选择「刷新状态」,确保Xcode识别到冲突文件。
  • 通过命令行解决冲突:如果SourceTree的合并过程让文件处于异常状态,可以试试用Git命令行工具修复。运行git mergetool——这会打开你配置的合并工具(可以设置为Xcode),明确显示冲突部分。解决后保存文件,运行git add 文件名,然后用git commit完成合并。

  • 检查Git属性配置:有时候仓库里的.gitattributes文件会给某些文件类型设置自定义合并驱动,而这个驱动可能静默失败。找类似*.plist merge=plist的行——如果合并驱动无法解决冲突,可能会让文件处于损坏状态但不显示标记。可以暂时注释掉这一行,重新运行合并,看看标记会不会出现。

内容的提问来源于stack exchange,提问作者Achu22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:47:07