Git错误存储CoreData xcdatamodel文件的问题求助
问题分析与解决步骤
你犯了两个关键错误:
- .gitattributes规则不完整:你只配置了
*.xcdatamodel binary merge=union,但xcdatamodeld本身也是XCode识别的包(本质是文件夹),且需要用/来匹配目录,告诉Git把这些目录当作单个“虚拟文件”处理,而非拆分跟踪内部文件。 - 未更新Git对现有模型文件的跟踪状态:仅重置索引不足以让Git应用新规则到已跟踪的文件上,必须先清除旧的跟踪记录,再重新添加。
正确解决流程
修正.gitattributes文件
在项目根目录的.gitattributes中添加以下内容:*.xcdatamodeld/ binary merge=union *.xcdatamodel/ binary merge=union这里的
/是核心,用来指定匹配目录,让Git将整个xcdatamodeld/xcdatamodel文件夹视为单个二进制对象,而非拆分成内部的contents文件和子目录。更新Git跟踪状态
执行以下命令,移除已被Git拆分跟踪的模型文件(本地文件会保留,仅清除Git的跟踪记录):git rm -r --cached YourModelName.xcdatamodeld替换
YourModelName为你实际的CoreData模型名称。重新添加并提交
git add YourModelName.xcdatamodeld git commit -m "Fix CoreData model Git tracking to treat as XCode package" git push清理XCode缓存并重启
- 关闭XCode
- 删除Derived Data(可通过XCode的
Preferences > Locations > Derived Data打开目录后删除对应项目的缓存) - 重新打开项目,此时CoreData模型应该会被正确识别,而非显示为文件夹结构。
额外说明
如果之前已多次推送错误的文件夹结构到远程仓库,建议团队其他成员拉取更新后,也执行一次本地的git rm -r --cached和重新添加操作,确保本地跟踪状态同步。
内容的提问来源于stack exchange,提问作者kittonian
相关产品推荐
相关产品推荐

