Git删除子模块并添加另一个fork

时间:2013-01-16 04:55:31

标签: git github

我正在离开Github mapbox-ios-sdk。 mapbox-ios-sdk使用FMDB作为子模块。我想要自己的custom version of FMDB(实际上只是从另一个项目添加一个sqlite3.h),因此我想要自己的sdk分支。

所以在我自己的分支上,我试图删除原来的FMDB子模块并添加了我自己的分叉。我根据this thread删除了子模块。然后我在相同目录中添加了自己的FMDB分支,作为原始FMDB子模块:

git submodule add https://github.com/t2wu/fmdb ./MapView/Map/FMDB

现在我遇到了无法解释的问题。上面的命令不起作用!它会下载FMDB好,但我不会在./MapView/Map/FMDB/src中看到sqlite3.h。 (并且git log --graph我没有看到我自己提交的sqlite3.h并且我在掌握。但是如果我把它放在其他地方,请说

git submodule add https://github.com/t2wu/fmdb ./MapView/MapView/FMDB

git submodule add https://github.com/t2wu/fmdb FMDB

然后我看到sqlite3.h。可能会发生什么?它与CocoaPod有什么关系,mapbox-ios-sdk显然也支持吗?

1 个答案:

答案 0 :(得分:3)

虽然您删除了旧的子模块,但元数据仍然保留在.git / modules / MapView / Map / FMDB中。

从git 1.7.8开始,git将子模块元数据存储在父存储库的.git目录中,而不是子模块中的单独.git。这就是为什么你会看到旧的子模块的历史和工作树。

要使一切恢复原状,请转到父存储库的基础并运行:

git submodule sync
cd MapView/Map/FMDB
git fetch
git checkout origin/master
相关问题