問題背景:最近在閱讀 onnxruntime 的源碼,打算自行編譯,該項目依賴許多第三方包(在 .gitmodule 文件中已詳細列出),但是由於牆的問題,一直無法成功下載。
問題描述:執行 git submodule update --init --recursive 失敗
解決方案:從 gitmodule 文件中可以看到這些包都是通過 https 的方式下載,應該修改為 ssh 的方式下載。舉例,https://github.com/microsoft/onnxruntime.git 修改為 git@github.com:microsoft/onnxruntime.git。由於第三方包也有可能依賴其他包,因此我們應該再次修改第三方包中的 https 下載方式到 ssh 方式。因為我使用的是 VS Code,直接使用了全局替換,由於第三方包也需要修改,因此整個過程我們需要執行多次全局替換。直至 git submodule update --init --recursive 時沒有任何輸出。另外,onnxruntime 依賴的第三包中有一個放在 gitlab,因此我們可以使用同樣的方式替換。