【问题标题】:Should xcworkspace be in gitignorexcworkspace 是否应该在 gitignore 中
【发布时间】:2014-04-16 05:40:40
【问题描述】:

我正在使用GitHubObjectiveCGitIgnore

当我进入 sourcetree 提交时,我看到:

project.xcworkspace

使用 Github .gitignore 文件不会忽略此文件。 我不确定是否需要提交并推送此文件?

【问题讨论】:

    标签: objective-c xcode git xcode5 bitbucket


    【解决方案1】:

    简而言之,应该提交。

    我已将我的 xcworkspace 文件签入到我的存储库中。如果您不使用工作区,则可能不需要它,但是当我使用 Cocoapods 时,这会创建一个 xcworkspace ,其中包含原始项目和其中的 pods 项目。 使用工作区是处理多个项目集/依赖项的正确方法。

    【讨论】:

    • 我也打算使用 Cocoapods。通常 Github gitignore 是非常正确的,但提交 xcworkspace 文件对我来说看起来很奇怪。我调查了一下,发现有人说是,有人说不是。
    • 如果您使用 cocoapods,您一定要签入。pod install 会为您创建一个,但您不应该签入的是项目和工作区文件夹中的 xcuserdata 文件夹 :)
    • xcuserdata 被 Github gitignore 文件忽略,因此不应该签入。
    【解决方案2】:

    如果您使用的是 Cocoapods,我实际上发现答案取决于几件事。

    • 如果您只是希望项目“开箱即用”可编译和可运行,那么请继续检查所有内容; xcworkspace 和所有 pod。
    • 如果您出于某种原因需要修改某个 pod,并且您希望将该更改包含在您的项目中,请检查所有内容。例如,我发现由于某种原因尚未修复的错误或另一个更容易自己修复它们并与我的项目一起检查 pod,而不是等待更新的 pod 或手动集成库(这与无论如何检查 pod 的结果基本相同)。或者,fork 存储库,将您的更改推送到它,然后将您的 pod 指向您的 fork。
    • 如果您对任何 pod 都没有任何问题,并且您已验证一切都适用于您指定的 pod 版本,那么您不必签入 xcworkspace 文件或 pod。当然,在这种情况下,您必须运行 pod install

    在这里做什么没有硬性规定。有时只需检查所有内容就值得付出额外的开销,有时则没有必要。这取决于您最方便的方式。

    【讨论】:

    • 如果我理解正确的话。在 xcworkspace 中是对 pod 的引用。如果我想在我的托管服务提供商上为 git (bitbucket) 节省空间,则无需签入 pod。更好的方法是手动运行 pod install。但是,如果我没有签入 xcworkspace,我怎么知道哪些 pod 丢失了?
    • 虽然我同意你可以分叉 repo 并将 pod 指向它,但结果是一样的,特别是如果你指定了特定版本的 pod。而且您对pod install 覆盖更改是不正确的。如果项目中已经存在 pod,则不会覆盖它。只有pod update 可能会这样做。而且,如果您正在与开发人员团队合作,您可能会指示他们不要运行pod update,除非有充分的理由。您唯一可以节省的是将这些额外的 pod 文件同步到 github 的开销。
    • @RadenkoZec,如果您走的是最少签入路线,则根本应该签入 xcworkspace 文件。默认情况下它不在 .gitignore 文件中的原因是因为它是您可以根据需要自行创建和管理的东西,而不是因为 cocoapods 需要它。 Cocoapods 使用 Podfile 和项目文件夹中现有的 xcproject 来生成工作区并同步所有 pod。
    • 为了进一步澄清,每次在新项目上运行 pod install 时都会生成对 xcworkspace 中 pod 的引用,因此强化了这样一个事实,即如果您不检查 xcworkspace,则不应检查'不打算同时签入吊舱。
    • @RadenkoZec 当然,但是如果您发现这个答案更有用,您应该接受这个而不是另一个。
    【解决方案3】:

    如果您已经/或计划在工作区中有多个项目(例如项目的子项目),则不应将其添加到 .gitignore

    当您执行pod install 时,如果工作空间存在,Cocoa pods 只会将自己的项目添加到工作空间。

    一般来说,将工作空间文件包含在 git 提交中会更安全,即使您排除了 pod。

    无论如何,您都必须使用pod install 来编译您的项目,因此即使您提交一个已经添加了可可豆项目的工作区文件,它也不会导致任何问题。

    【讨论】:

      猜你喜欢
      • 2011-05-08
      • 1970-01-01
      • 2021-08-29
      • 2018-09-08
      • 2011-08-11
      • 2018-07-09
      • 2022-01-12
      • 1970-01-01
      • 2020-09-20
      相关资源
      最近更新 更多