【问题标题】:Added pod files and pushed. How to undo? how to use gitignore in Xcode & github?添加 pod 文件并推送。如何撤消?如何在 Xcode 和 github 中使用 gitignore?
【发布时间】:2016-03-17 18:13:02
【问题描述】:

这是一个两部分的问题: 1)我已将所有 pod 文件添加并推送到 github。有没有办法可以删除它们而不将它们再次推送到 github?

2) 我知道 gitignore 可以提供帮助,但我不知道如何使用它。谁能告诉我使用 gitignore 的过程?

所以我想我能做的就是,从github获取项目,添加gitignore,然后再push。那是对的吗?

请帮助,github 和 Xcode 的新手。

【问题讨论】:

    标签: xcode github cocoapods gitignore


    【解决方案1】:

    没错,你需要将Pods目录添加到你的.gitignore

    1) 从 github 存储库中删除文件:

    git rm -r Pods/

    别忘了提交和推送

    2) 创建一个 gitignore 文件:

    1. 打开终端并浏览 .git 文件夹所在的项目文件夹
    2. 输入touch .gitignore
    3. 输入echo "Pods/" > .gitignore

    更多信息:here

    【讨论】:

    • 如果你想从你的遥控器中删除它们,你可以使用git rm -r --cache Pods/
    • 注意: .gitignore 可能存在,因此touch 命令可能会在没有警告的情况下删除旧的
    • @VyachaslavGerchicov 不,touch 不会删除任何内容。它更新现有文件的最后访问时间戳。 touch可以放心使用。
    • 您的解决方案对我不起作用。它会忽略文件夹“Pod”,但不会忽略它的子文件夹
    【解决方案2】:

    这就是 Cocoapods 官方文档所说的。

    是否签入 Pods 文件夹取决于您,因为工作流程因项目而异。
    它建议您将 Pods 目录置于源代码管理之下,并且不要将其添加到您的 .gitignore 中。但最终这个决定取决于你:

    检查 Pods 目录的好处

    1. 克隆 repo 后,项目可以立即构建和运行,即使机器上没有安装 CocoaPods。无需运行 pod install,也无需连接互联网。
    2. 即使 Pod 的源(例如 GitHub)出现故障,Pod 工件(代码/库)也始终可用。
    3. 在克隆 repo 后,Pod 工件保证与原始安装中的工件相同。

    忽略 Pods 目录的好处

    1.源代码控制仓库会更小,占用更少的空间。 只要所有 Pod 的源(例如 GitHub)都可用,CocoaPods 通常能够重新创建相同的安装。 (从技术上讲,不保证在 Podfile 中不使用提交 SHA 时,运行 pod install 将获取并重新创建相同的工件。在 Podfile 中使用 zip 文件时尤其如此。)

    2.在进行源码控制操作时不会有任何冲突需要处理,例如合并不同Pod版本的分支。

    无论您是否签入 Pods 目录,PodfilePodfile.lock 都应始终处于 版本控制 之下。 p>

    参考链接:Cocoapods Official Documentation

    【讨论】:

    • 我可能会添加忽略 Pods 目录的好处:某些 pod 大于 100MB 由 github 授权,这会导致将代码推送到存储库时出错
    • 沿着这条线,由于> 100mb .framework 文件,我无法推送我的Pods 文件夹。我能够解决问题的唯一方法是这里给出的方法:inteist.com/…
    【解决方案3】:

    /Pods 添加到.gitignore 时需要注意的事项

    如果您在团队中工作,您的队友在他们的机器上安装 pod 时可能会遇到问题,最可能的原因是 Podfile.lock

    总之,Podfile.lock 确保您不会意外升级您引入的库,同时让您的Podfile 只关心新的依赖项。

    为什么Podfile.lock 可能会导致问题?

    Podfile.lock 锁定第一次安装版本的项目,当您再次执行pod install 时,这只会在Podfile 中安装任何新库,并且不会通过将现有库更新为最新代码来影响它们。

    如果拉取 repo 不包含 /PodsPodfile.lock 会锁定您机器中不存在的 pod 版本,因为 .gitignore 并期望这些库存在。

    简单的解决方案

    只需删除 Podfile.lock 然后执行 pod installPodfile.lock 将使用您安装的 pod 版本再次生成。

    注意:在移除 Podfile.lock 并安装 pod 后,您可能会与团队以外的不同版本的 pod 进行交互。

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 2021-06-01
      • 2019-08-20
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 2019-03-10
      相关资源
      最近更新 更多