我有一个包含多个git submodule
s。
最近我遇到了一个我无法解决的新错误:
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
MyModule_A
移除.gitmodules
子模块,但错误会在MyModule_B
,MyModule_B
中继续,依此类推。~/git/MyModule_A.git
手动克隆到repo外部另一个工作正常的文件夹中。.gitmodules
中的条目是否存在错误的路径,网址或任何语法问题。 答案 0 :(得分:4)
问题在于子模块中的~
。 Git不知道这代表/home/<yourusername>
如果用绝对路径替换它(在.gitmodules
中),一切都会起作用。