Git submodule 采坑
-
使用git submodule update --init 時(shí)遇到錯(cuò)誤:error: Server does not allow request for unadvertised object
錯(cuò)誤日志:
error: Server does not allow request for unadvertised object 77ad8cf1deb654a638d142be155b078874eacfb7 Fetched in submodule path 'buildSrc', but it did not contain 77ad8cf1deb654a638d142be155b078874eacfb7. Direct fetching of that commit failed.
可以看到當(dāng)前submodule的最新attach的commit是77ad8c趴俘,但是submodule子模塊最新的是54f1c35(遠(yuǎn)端最新也是這個(gè))
在submodule文件夾外層使用git status發(fā)現(xiàn)submodule buildSrc有change蚤吹,從54f1c35 ->77ad8c
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-mlobDH1N-1604891162479)(/Users/pchen/Library/Application Support/typora-user-images/image-20201106135041139.png)]
原因分析:可能是主工程關(guān)聯(lián)了buildSrc submodule的一個(gè)新commit 77ad8c狡赐,但是這個(gè)commit后續(xù)沒有在buildSrc中push到遠(yuǎn)端且被reset掉了裹刮,所以造成當(dāng)前主工程無法找到這個(gè)commit
解決方法:嘗試下面兩個(gè)方式解決了
git submodule deinit -f . git submodule update --init