【问题标题】:Git submodule troubles - changing underlying repo addressGit 子模块问题 - 更改底层 repo 地址
【发布时间】:2013-03-05 03:25:30
【问题描述】:

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

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

【问题讨论】:

  • 您可能需要手动更改子模块.git/config中的url。
  • 很棒的发现!在下面@VonC 的答案中查看我的 cmets。

标签: git git-submodules


【解决方案1】:

neevekmentions.git/config,和git config的文档确认:

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

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

所以:

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

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

【讨论】:

  • 我尝试了这种方法,在将config URL 更新到原始仓库后,我仍然无法让git submodule update 工作。不过真的很不错。
  • 更糟糕的是我也按照这里的步骤操作:stackoverflow.com/questions/14404704/…git submodule sync 也不起作用。 Git 今天只是表现得像个完全的 git(对不起,我忍不住)
猜你喜欢
  • 2022-01-23
  • 2021-09-05
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 1970-01-01
  • 2019-08-09
  • 2014-02-17
  • 1970-01-01
相关资源
最近更新 更多