git submodule update --init 上的错误

Ann*_*lkl 4 git git-submodules

我有一个带有多个git submodules的主存储库。

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

fatal: Could not switch to '~/git': No such file or directory
Clone of '~/git/MyModule_A.git' into submodule path '.modman/MyModule_A' failed
Run Code Online (Sandbox Code Playgroud)

我在做什么

首先,我像往常一样克隆主仓库: 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
Run Code Online (Sandbox Code Playgroud)

到目前为止我尝试过的

  • MyModule_A从 中删除子模块,.gitmodules但错误在 中继续MyModule_BMyModule_B依此类推。
  • 手动克隆~/git/MyModule_A.git到 repo 之外的另一个文件夹中,该文件夹工作正常。
  • 检查似乎正确的文件权限。
  • 检查条目.gitmodules是否存在错误的路径、网址或任何语法问题,但事实并非如此。

Bar*_*Bog 5

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

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