我在Xcode 4中有一个iOS项目,即使用Git。现在我想将MKStoreKit框架添加到我的项目中。它已经在使用Git和公共仓库进行版本控制。我想将它包含在我的项目中,并允许我的项目的git版本控件对当前拉出的MKStoreKit版本进行版本控制,同时保持克隆任何更新的MKStoreKit代码的能力,使用标准的git easy。我看到git子模块或子树可能是我需要的,但它看起来像一个真正的PITA。有没有更简单的方法?
到目前为止,我添加到项目中的任何外部代码都会克隆到临时目录,然后将各个文件复制到我的项目中。这感觉就像是做事的一种愚蠢的方式。
答案 0 :(得分:1)
查看Git书籍的submodules部分。他们并不是那么糟糕。
如果您有一个git存储库,并且想要将另一个存储库添加为子目录,则可以执行以下操作:
git submodule add git://github.com/MugunthKumar/MKStoreKit.git mstorekit
现在项目中有一个目录“mstorekit”,实际上是MStoreKit存储库。如果某人克隆了您的存储库,他们将从一个空的“mstorekit”目录开始。运行:
git submodule init
git submodule update
将克隆MStoreKit存储库。它们最终将与MStoreKit存储库的HEAD结果在与签入存储库的提交相同的提交中。
更新MStoreKit将如下所示:
cd mstorekit
git pull origin master
cd ..
git ci -m 'updated mstorekit to latest version'
有一些替代方案,包括git-subtree,我最近在这里提到过。我没有经验(虽然我对使用子模块感到非常满意)。