【问题标题】:Git repository inside Xcode local folderXcode 本地文件夹中的 Git 存储库
【发布时间】:2014-06-05 00:38:41
【问题描述】:

我正在研究一些可以在其他项目中重复使用的类。完成后,我会将第一个版本添加到 github。该项目什么都不做,只是这些类很有用。我不想提交整个 Xcode 项目。我只想提交我正在使用的课程,因为这是人们将在他们的项目中复制的内容。 如果我推送整个项目,我必须要求类的用户挖掘项目并手动复制类,删除其余的。很脏。

所以我想出了一个解决方案。

  1. 我创建了一个普通的可可项目。
  2. 在我在命令行中创建的项目中创建了一个文件夹,比如 MyClasses
  3. 我在该文件夹中添加了类文件。
  4. 我通过引用而不是复制将该文件夹添加到 Xcode 项目中。
  5. 然后在命令行中,我在该文件夹中创建了一个 git init,添加了所有文件并进行了第一次提交。

到目前为止一切顺利。我正在使用 Xcode 提供的界面来管理存储库,它知道 git 存储库仅位于该文件夹中。

我的问题是,这会在未来崩溃吗? Xcode 准备好以这种方式工作了吗? 我想知道以前是否有人这样做过。通过这种方式,我可以仅将存储库专用于类,并排除所有与 Xcode、nib、plist 等相关的文件。

这将问题扩展到:同一个 Xcode 项目中是否可以有多个存储库?我还没试过。

【问题讨论】:

  • 可能有助于区分项目和工作区。

标签: xcode git xcode5


【解决方案1】:

所以如果我理解正确的话,你想使用 git 分发一些特定的 Objective-C 源文件,但也将它们包含在你自己的本地 Xcode 项目中以在 Xcode 中工作。

如果是这种情况,请完全按照您的描述进行操作。换句话说:

  1. 将所有源文件(您要分发的)存储在一个目录中
  2. 在该目录中初始化一个 git repo
  3. 将该目录添加到您的本地 Xcode 项目中,确保将适当的源文件添加到您的构建目标中。

您可以通过这种方式添加任意数量的单独存储库。

这会在未来崩溃吗?

不,配置不应导致任何崩溃。

这种方法有一个警告,如果你有合作者。由于您没有共享您的 *.xcodeproj 文件,因此当其他人修改文件结构或添加或删除文件时,您的构建设置和文件引用将不会更新。每次从远程拉取时,您可能会发现自己必须手动更新本地项目中的文件引用,否则您可能会遇到构建错误。

Xcode 准备好以这种方式工作了吗?

根据我的经验,是的,它运行良好。不过,如果您倾向于使用 Xcode 界面来管理 git,请注意 Xcode 仅识别已“签出”的存储库的源代码控制下的文件。根据我所见,Xcode 会自动为它在当前项目目录或任何文件夹或组引用中找到的任何 repos 执行此操作。

此外,如果一个文件同时属于两个或多个存储库,则会出现一些问题; Xcode 只会与其中一个交互,我不知道是否有任何方法可以选择哪个。如果您不嵌套存储库,这应该很容易避免。

在 Xcode 5 中,您可以在“源代码管理”菜单的“工作副本”下查看哪些 git 存储库已签出。 Xcode 还可以在文件检查器的“源代码管理”下告诉您每个文件属于哪个 repo。

同一个 Xcode 项目中是否可以有多个存储库?

是的。您可以在 Xcode 项目目录下同时存在多个存储库,就像在其他任何地方一样。事实上,您可以轻松地将您的存储库放在文件系统的其他位置,并通过引用将它们添加到您的项目中;您不必将所有 git repos/source 文件存储在该目录中即可使用。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2014-10-20
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 2015-12-06
    相关资源
    最近更新 更多