git submodule update --init 出现错误

4

我有一个主仓库,里面包含了几个 git 子模块

最近我遇到了一个新的错误,但我无法解决:

fatal: Could not switch to '~/git': No such file or directory
Clone of '~/git/MyModule_A.git' into submodule path '.modman/MyModule_A' failed

我在做什么

首先,像往常一样克隆主仓库:git clone /path/to/the/bare/repo.git src

然后我运行git submodule update --init,这将正确注册所有子模块并将它们添加到.git/config中。

Submodule '.modman/MyModule_A' (~/git/MyModule_A.git) registered for path '.modman/MyModule_A'
Submodule '.modman/MyModule_B' (~/git/MyModule_B.git) registered for path '.modman/MyModule_B'
Submodule '.modman/MyModule_C' (~/git/MyModule_C.git) registered for path '.modman/MyModule_C'
fatal: Could not switch to '~/git': No such file or directory
Clone of '~/git/MyModule_A.git' into submodule path '.modman/MyModule_A' failed

目前我尝试了以下方法:

  • .gitmodules中删除MyModule_A子模块,但无论是在MyModule_B还是MyModule_B等其他模块中,错误仍然存在。
  • 手动将~/git/MyModule_A.git克隆到存储库外的另一个文件夹中,这个方法可行。
  • 检查文件权限,看起来没有问题。
  • 检查.gitmodules中的条目,是否有路径、url或任何语法问题,但没有发现此类情况。
1个回答

5
问题在于你的子模块中的~。Git不知道这代表着/home/<yourusername>
如果你将其(在.gitmodules中)替换为绝对路径,一切都会正常工作。

真的吗?该死。我会立即尝试它。 - Anna Völkl
非常完美地工作!非常感谢! - Anna Völkl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接