我有一個使用子模塊 A 的 git 存盤庫,出于技術原因,我需要將子模塊切換到子模塊 B,這是一個具有不同提交的不同存盤庫,它們僅從專案開始就共享了幾個提交,其中對我來說沒問題。
到目前為止我所做的是:
- 修改
.gitmodules檔案以使用新 URL - 洗掉repo中的子模塊檔案夾
rm -rf .git/modules/<submodule> - 洗掉作業目錄下的子模塊檔案夾
rm -rf <submodule> - 跑
git submodule sync - 跑
git submodule update
之后我收到一個錯誤:
fatal: remote error: upload-pack: not our ref a5129baec669f7736552019baccd3da7e5129cfd
Fetched in submodule path 'Submodule/path', but it did not contain a5129baec669f7736552019baccd3da7e5129cfd. Direct fetching of that commit failed.
因此,帶有 SHA 的提交a5129b作為最新提交存在于子模塊 A 中,但不在子模塊 B 中。
我不明白為什么試圖從前一個子模塊中獲取提交,我錯過了什么嗎?
uj5u.com熱心網友回復:
我設法重現了這個并使用以下命令修復了它:
git submodule set-url <submodule> <old url>
git submodule update
git submodule set-url <submodule> <new url>
git submodule update
git -C <submodule> fetch
git -C <submodule> reset --hard origin/HEAD
警告:這將洗掉任何未提交的更改submodule!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/317341.html
標籤:混帐 git-submodules
上一篇:Git日志-顯示合并請求ID
下一篇:ConnectionPoolTimeoutExceptionatcaller[springwebapplicaiton]記錄但服務器上沒有日志[springboot]
