git - git submodule update 忽略 .gitmodules
问题描述
我有一个 git repo,它有一个子模块。主仓库的 .gitmodule 文件的内容是:
[submodule "wits-mercuryAPI"]
path = wits-mercuryAPI
url = https://github.com/myorganization/wits-mercuryAPI.git
我希望当我发出命令时......
git子模块更新
...它将正确地从 .gitmodule 文件的 url 中指定的位置克隆子模块。但是,它显然尝试使用该文件的旧版本,其中 url 指向不正确的 url,因此失败。
对于我的生活,我无法弄清楚为什么它会以这种方式运行,或者是什么神奇的隐藏属性告诉这个命令访问一些旧的和不可见的 .gitmodules 文件版本。
解决方案
好的,我想通了。虽然我没有提到这一点,因为我认为它不相关,但我在自己的问题中描述的“repo”(我们称之为“B”)本身就是另一个更高级别的父存储库的子模块(让我们称之为'A')。最后,让我们调用原始问题“C”中描述的子模块。所以依赖是A->B->C。
以下是发生的事情: 1. 我更新了 B 中的 .gitmodules 以指向 C 的新的正确 url,并将更改推送到 master。2. 我错误地认为如果我这样做了,A 会自动接受这个更改:`git clone --recurse。3. 相反,A“记住”它所指向的 B 的版本,获取带有不正确 url 的子模块版本到 C
修复在这里:https ://gist.github.com/ryannealmes/aa4eed8b222239c9e207
推荐阅读
- awk - 删除文本文件中的非常规字段分隔符 (^@^@^@)
- github-pages - 我想从 github 克隆到我的桌面。但我仍然遇到一些问题
- reactjs - 反应原生视频组件没有显示?
- javascript - 如何在范围滑块上分配标签
- path - Revit Ironpython Shell - 解析路径中反斜杠后带有数字的文件名列表
- excel - 目录的罗马数字页码
- c# - WPF ListView - 在未单击所选项目时检测 ListVewItem
- kdb - KDB+/Q:填充不规则列表的有效方法(矩阵)
- html - 如何在导航栏后面制作横幅文本
- php - 如何在我的第一个循环中有第二个循环