答案 0 :(得分:1)
假设您要将Pods
目录提交给Git,这样可以确保在签出特定修订版时始终可以编译项目而无需先运行pod install
,那么您可以重置通过在项目目录中运行以下命令,在Pods
目录中的暂存区域中:
git rm --cached -r Pods
git add -A Pods
(免责声明:您可以通过运行此类命令来丢失数据。请在必要时熟悉它们的含义,这样您就不会意外删除要提交的内容。)
或者,您可以将Pods
目录添加到.gitignore
文件中。这将确保您以后无法提交Pods
目录,但在pod install
更改Podfile.lock
之后运行 echo "/Pods" >> .gitignore
是必要的。切换分支,协作和CI。
您可以通过在项目目录中的shell上执行以下命令来实现此目的:
.gitignore
执行此操作后,您需要将对Pods
的更改提交到您的存储库。此外,我建议您对存储库进行专门的提交,删除Pods
目录下的文件。这将仅影响存储库内容,而不影响本地结帐。
CocoaPods指南"使用CocoaPods"有一章"Should I check the Pods directory into source control?",详细讨论了它的优点和缺点:
我应该将Pods目录检查到源代码管理中吗?
您是否签入
.gitignore
文件夹取决于您 工作流程因项目而异。我们建议您保留 在源代码管理下的Pods目录,不要将其添加到您的pod install
。但最终这个决定取决于你:签入Pods目录的好处
- 克隆了repo后,即使没有在机器上安装CocoaPods,项目也可以立即构建和运行。没有 需要运行
pod install
,并且不需要互联网连接。- Pod工件(代码/库)始终可用,即使Pod的源(例如GitHub)发生故障也会消失。
- 克隆回购后,保证Pod工件与原始安装中的工件相同。
忽略Pods目录的好处
- 源代码控制回购将会更小并占用更少的空间。
- 只要所有Pod的源(例如GitHub)都可用,CocoaPods通常能够重新创建相同的安装。 (从技术上讲,无法保证正在运行
Pods
不使用提交SHA时获取并重新创建相同的工件 Podfile。在使用zip文件时尤其如此 Podfile。)- 执行源代码控制操作时不会遇到任何冲突,例如合并不同Pod的分支 版本
您是否签入
Podfile
目录,Podfile.lock
和。{.gitignore
应始终保持版本控制。
此外,您可能需要检查是否可以改进xcuserdata
。我可以从截图中识别出你的Xcode项目中有一个 # (u'session_id', ((u'prod_id', u'user_id'), (u'prod_label', u'user_id')))
# (u'u'session_id', ((u'20133', u'129001032'), None))
# (u'u'session_id', ((u'2024574', u'61370212'), (u'Loc1', u'61370212')))
目录,而Git并不会忽略它。这些是用户特定的配置文件,不一定属于存储库。如果您与他人合作,忽略这些会减少回购请求的大小和拉取请求中的噪音,并使更改集更容易查看。但如上所述,最终取决于您,无论您是否想要检查它们。 GitHub拥有一个众包存储库,其中包含各种语言的文件模板。 Their Objective-C file可能是您的良好起点。