2016-07-26 68 views
2

我的主存儲庫中有一個名爲third-party的子模塊。由於這個模塊太大,我在我的工作區創建了一個符號鏈接到third-party文件夾。 爲了我的不幸,我將這個符號鏈接作爲我的分支,作爲大合併的一部分!基本上,我用一個符號鏈接替換了一個子模塊。Git:如何恢復替換子模塊的符號鏈接提交?

我試圖刪除鏈接和子模塊更新,它沒有幫助。

更多細節:

cat .gitmodules輸出以下

[submodule "third-party"] 
    path = third-party 
    url = http://my-git-server/third-party.git 

ls -la輸出以下

drwxr-xr-x 3 user admin 136 Jul 26 17:57 some-folder 
drwxr-xr-x 3 user admin 102 Jul 26 17:57 third-party -> /some/dead/path 

我不知道如何從這種情況中恢復。任何幫助是極大的讚賞。

回答

1

我嘗試了多件事情,最後下面的工作。歡迎更好的方法來解決這個問題!

#delete the symlink 
rm third-party 

#delete the symlink from git 
git rm third-party 

#remove the submodule 
cat /dev/null>.gitmodules 

#commit the changes 
git add . 
git commit -m "Removing third-party as submodule" 

#add the submodule again 
git add submodule http://my-git-server/third-party.git third-party 

#get the latest code from the submodule 
git submodule update --remote 

這解決了我的問題。雖然第三方現在提交的提交散列不同,但當我做git submodule update --remote時,我得到最新的代碼!