1

我有一个项目,我在其中添加了一个 git 子模块到一个过期的 repo 的 fork 中。我决定将子模块引用更改为指向原始存储库,而不是指向那个分叉。

我编辑了.gitmodules文件以反映新的参考并运行git submodule initgit submodule update --recursive但是没有效果,我在这里错过了一步吗?

4

1 回答 1

2

neevek 提到 .git/config,并且git config确认的文档:

子模块..路径子模块..url子模块..更新

此项目中的路径、URL 和子模块的更新策略。
这些变量最初由git submodule init; 编辑它们以覆盖.gitmodules文件中的 URL 和其他值。

所以:

  • 单独更改值.gitmodules是不够的(其中的 url.git/config将具有优先权)。
  • git submodule init,正如文档中提到的那样,它不会改变现有信息.git/config(这解释了为什么您的命令没有任何可见的效果)。
    然后,您可以为本地设置自定义子模块克隆 URL,.git/config然后继续git submodule update

我个人觉得这个 url 重复有点令人困惑......

于 2013-03-05T07:45:19.093 回答