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
到目前为止我尝试了什么
- 正在从
.gitmodules
中删除 MyModule_A
子模块,但错误继续出现在 MyModule_B
、MyModule_B
等等。
- 手动克隆
~/git/MyModule_A.git
到存储库之外的另一个文件夹中,该文件夹工作正常。
- 正在检查似乎正确的文件权限。
- 正在检查
.gitmodules
中的条目是否存在错误的路径、URL 或任何并非如此的语法问题。
问题出在您的子模块中的 ~
。 Git不知道这个代表/home/<yourusername>
如果用绝对路径替换它(在 .gitmodules
中),一切都会正常。
我有一个包含多个 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
到目前为止我尝试了什么
- 正在从
.gitmodules
中删除MyModule_A
子模块,但错误继续出现在MyModule_B
、MyModule_B
等等。 - 手动克隆
~/git/MyModule_A.git
到存储库之外的另一个文件夹中,该文件夹工作正常。 - 正在检查似乎正确的文件权限。
- 正在检查
.gitmodules
中的条目是否存在错误的路径、URL 或任何并非如此的语法问题。
问题出在您的子模块中的 ~
。 Git不知道这个代表/home/<yourusername>
如果用绝对路径替换它(在 .gitmodules
中),一切都会正常。