工作副本“Pods”无法提交文件 - Realm Errors

时间:2015-12-20 13:10:26

标签: xcode swift github cocoapods realm

由于以下错误,我无法将我的Xcode项目更改提交给Github。正如您在下面看到的,它与Realm有关。我最近更新了豆荚。关于如何解决这个问题的任何建议。

enter image description here

enter image description here

enter image description here

enter image description here

1 个答案:

答案 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可能是您的良好起点。