git 子模块更新出错 --init

Error on git submodule update --init

我有一个包含多个 git submodule 的主存储库。

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

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

到目前为止我尝试了什么

问题出在您的子模块中的 ~。 Git不知道这个代表/home/<yourusername>

如果用绝对路径替换它(在 .gitmodules 中),一切都会正常。