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

iOS多模块项目子模块新建文件未在SourceTree显示的问题求助

问题排查与解决方案

核心原因

你通过本地路径引入的CocoaPods子模块(如MMCommon)是独立的Git仓库,主项目的Git仅会追踪Podfile、Podfile.lock这类配置文件,不会监控子模块内部的文件变动。SourceTree默认只加载主项目的仓库,因此子模块的新文件不会出现在主项目的Unstaged/Staged区域;Xcode提交未更新GitHub,是因为你操作的是主仓库,并未提交子模块的变更。

具体解决步骤

1. 处理子模块的Git提交

打开子模块的本地目录(如MMCommon文件夹),执行以下Git命令:

# 查看未追踪/修改的文件
git status
# 暂存所有新文件
git add .
# 提交变更
git commit -m "新增xxx文件"
# 推送到GitHub仓库
git push origin main

也可以直接在SourceTree中单独打开子模块的本地仓库目录,就能看到所有未暂存文件,正常提交推送即可。

2. 同步主项目的Pod依赖状态

如果子模块的版本号(Podspec里的s.version)有更新,在主项目目录执行:

pod install

这会更新Podfile.lock,随后将Podfile.lock的变更提交到主项目仓库,确保其他协作方拉取代码后能同步到最新的子模块版本。

3. SourceTree显示子模块的设置

若想在主项目的SourceTree界面快速查看子模块状态:

  • 打开主项目的SourceTree窗口,点击顶部菜单栏「仓库」→「子模块」→「添加子模块」(不过本地路径的Pod不算Git子模块,更推荐直接单独打开子模块仓库)
  • 或在SourceTree的「文件」→「打开」中选择子模块的.git文件夹,直接加载子模块仓库。

4. Xcode源码控制的正确操作

  • 打开子模块对应的Xcode项目(如MMCommon.xcodeproj)
  • 点击Xcode顶部「源代码控制」→「提交」,此时会显示子模块的所有未提交文件,提交后执行推送即可同步到GitHub。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:03:12