2013-01-16 66 views
2

我分叉mapbox-ios-sdk關閉Github。 mapbox-ios-sdk使用FMDB作爲子模塊。我想要我自己的custom version of FMDB(實際上只是從另一個項目中添加一個sqlite3.h),因此我想要自己的sdk分支。Git刪除子模塊,並添加另一個叉

所以在我自己的叉子上,我嘗試刪除原始的FMDB子模塊並添加了我自己的叉子。我根據this thread刪除了子模塊。

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

現在我跑成什麼樣,我無法解釋:然後,我通過添加自己的FMDB岔路同一目錄與原始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也顯然支持?

+0

你嘗試git的子模塊init和git的子模塊更新? – ShadyKiller

回答

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 
+0

如果我要重新開始。要乾淨地刪除一個子模塊,我現在需要手動刪除.git/modules/MapView/Map/FMDB上的整個目錄嗎? – huggie

+0

提交刪除子模塊後,我刪除上述目錄。我添加了自己的模塊分支,它可以工作。謝謝一堆。這幾個小時我一直在摔跤! – huggie

+1

你甚至不需要那樣做。重要的部分是運行同步,它告訴git從你的FMDB fork而不是原始對象中獲取對象。 –