0

因此,我正在学习如何缓慢地使用 git 来获取 RestKit 的最新更新,因为旧版本具有保留周期……但是,当我使用 gitHub 客户端拉取时,它不会给我 AFNetworking 文件,我然后被告知使用命令

git submodule update --init --recursive

我这样做,问题是我注意到运行后我运行

git submodule status

它让我离开了 master 分支并将 HEAD 放回原处,从而使我恢复了旧的东西。因此回到泄漏和东西。

所以我想也许我可以使用 cocoapods 安装,或者在 AFNetworking 的 restkit 子模块中放置一个子模块......一切似乎都不起作用,现在我已经按照本指南如何删除子模块?直到最后一步,因为我不知道提交会做什么?我希望它不会承认我将所有内容都删除到 restkit 网站上的事实?我很困惑,最初我想做的就是将我必须的当前分支子模块切换到主模块。

援助将不胜感激。

编辑: 好的,回答 Commit 的作用,提交只会影响您的存储库副本,绝不会影响其他人从中获取代码的远程“主”存储库,所以本质上我能够提交它,然后运行来自我想要的分支的全新子模块,但问题仍然存在有没有办法在使用 --recursive 更新时切换您从中提取数据的分支?

4

1 回答 1

1

只需进入 RestKit 目录并输入:

git pull origin master

(如果你当然使用主分支)

此外,如果您需要更新所有子模块,只需转到项目的根目录,然后键入:

git submodule foreach git pull

git submodule update令人困惑,这是它的真正作用:

当您调用 git submodule update 时,它​​会在父存储库中查找每个子模块的 SHA,进入这些子模块,并检出相应的 SHA。如果您在常规存储库中签出 SHA,就会出现这种情况,这会将子模块置于分离的 HEAD 状态。

编辑

要简单地切换子模块的分支,比如说“开发”,只需在子模块中执行git checkout development,然后您应该可以执行git pull origin development

于 2012-12-14T13:38:12.663 回答