2012-07-10 117 views
10

我坐在只允許http/https通信的代理服務器上,我可以從Github克隆存儲庫,但必須使用https URL和用戶名/密碼來獲取/推送。通過https更新Git子模塊

現在我的問題是關於子模塊的存儲庫,當我執行git submodule update超時,我只能假設這是因爲它的使用被阻斷SSH連接。 (它甚至不會要求我在私人回購站上輸入密碼)

+0

這個問題還用'權限被拒絕(公鑰)'的錯誤來解決此問題。 – BlackVegetable 2013-12-18 18:52:59

回答

19

在您的回購庫根目錄中的.gitmodules文件和.git/config文件中,應該爲您的子模塊找到一個部分。您可以在那裏編輯url,以便通過https請求而不是ssh訪問它。

當然,它可能已經是一個SSH網址,在這種情況下,問題可能是別的,但這是第一個檢查的地方。

+0

這是非常有幫助的,但我的問題稍微複雜一點,因爲我在subrepos中有subrepos。下面是我如何獲得在Linux中編輯的所有正確文件: sed -i -e's/git:\/\ // http:\/\ // g'.gitmodules; 找。 -name config -type f -exec sed -i -e's/git:\/\ // http:\/\ // g'{} \; – Tristan 2015-06-04 16:02:36

+1

正如FrançoisKoessler的回答所示,在編輯''.gitmodules''後運行''git submodule sync''是這個工作的必要步驟! – 2018-03-05 16:35:27

16

編輯您的.gitmodule文件與HTTPS URL,例如:

[submodule "vendor/engines/fat_free_crm"] 
    path = vendor/engines/fat_free_crm 
    url = https://github.com/fatfreecrm/fat_free_crm.git 

然後運行git submodule sync以反映更改您.git/config文件。

現金https://stackoverflow.com/a/6632693/1273077

+1

感謝提及'git submodule sync' – MohamedEzz 2017-11-13 04:57:13