我有一個項目,我添加了一個git子模塊到一個過期的回購叉。而不是指向那個分支,我決定改變子模塊的引用來指向原始的倉庫。Git子模塊的麻煩 - 改變底層回購地址
我編輯.gitmodules
文件以反映新的參考文件,然後運行git submodule init
和git submodule update --recursive
但是沒有任何效果,我是否在這裏丟失了一個步驟?
我有一個項目,我添加了一個git子模塊到一個過期的回購叉。而不是指向那個分支,我決定改變子模塊的引用來指向原始的倉庫。Git子模塊的麻煩 - 改變底層回購地址
我編輯.gitmodules
文件以反映新的參考文件,然後運行git submodule init
和git submodule update --recursive
但是沒有任何效果,我是否在這裏丟失了一個步驟?
neevekmentions.git/config
,和git config
文件證實:
submodule..path submodule..url submodule..update
這個項目,URL中的路徑,並更新子模塊的策略。
這些變量最初由git submodule init
填充; 編輯它們以覆蓋.gitmodules
文件中的URL和其他值。
所以:
.gitmodules
值是不夠的(在.git/config
的URL將優先)。git submodule init
,正如文檔中提到的,不會改變.git/config
中的現有信息(並解釋了爲什麼您的命令沒有任何可見的效果)。 .git/config
中的子模塊克隆URL並繼續到git submodule update
。我個人認爲,這一網址複製有點混亂......
我嘗試了這種方法,並且在將'config' URL更新爲原始倉庫後,我仍然無法讓'git submodule update'工作。雖然真的很好找。 – 2013-03-05 16:20:32
更糟糕的是,我遵循以下步驟:http://stackoverflow.com/questions/14404704/how-do-i-replace-a-git-submodule-with-another-repo和'git submodule sync' doesn也不行。 Git今天就像一個完整的git(抱歉不能自己幫忙) – 2013-03-05 16:33:09
您可能需要手動更改URL中'你的子模塊的.git/config'。 – neevek 2013-03-05 04:45:06
很棒的發現!請在下面看到我對@ VonC的答案的評論。 – 2013-03-05 16:34:12