我有一个项目,我在其中添加了一个 git 子模块到一个过期的 repo 的 fork 中。我决定将子模块引用更改为指向原始存储库,而不是指向那个分叉。
我编辑了.gitmodules
文件以反映新的参考并运行git submodule init
,git submodule update --recursive
但是没有效果,我在这里错过了一步吗?
我有一个项目,我在其中添加了一个 git 子模块到一个过期的 repo 的 fork 中。我决定将子模块引用更改为指向原始存储库,而不是指向那个分叉。
我编辑了.gitmodules
文件以反映新的参考并运行git submodule init
,git submodule update --recursive
但是没有效果,我在这里错过了一步吗?
neevek 提到 .git/config
,并且git config
确认的文档:
子模块..路径子模块..url子模块..更新
此项目中的路径、URL 和子模块的更新策略。
这些变量最初由git submodule init
; 编辑它们以覆盖.gitmodules
文件中的 URL 和其他值。
所以:
.gitmodules
是不够的(其中的 url.git/config
将具有优先权)。git submodule init
,正如文档中提到的那样,它不会改变现有信息.git/config
(这解释了为什么您的命令没有任何可见的效果)。.git/config
然后继续git submodule update
。我个人觉得这个 url 重复有点令人困惑......