为什么会这样?
git clone --mirror [repo-url]
或
git clone --mirror --recursive [repo-url]
不适用于子模块。尝试git fetch --recurse-submodules
会出错
fatal: Refusing to fetch into current branch refs/heads/master of non-bare repository
但是排除--mirror
可行。
因此,如果使用--mirror
选项克隆了存储库,则无法将子模块置于其中,除非在没有--mirror
的情况下克隆存储库。
从工作副本运行git submodule update --init --recursive
会显示错误消息:
fatal: Not a git repository (or any of the parent directories): .git
从镜像存储库运行git submodule init
会显示以下错误消息:
fatal: /usr/libexec/git-core/git-submodule cannot be used without a working tree.
使用GIT_WORK_TREE
和/或GIT_DIR
环境变量也不起作用。
是否只能从头开始克隆存储库?
编辑:顺便说一句,首先--mirror
的原因是因为我跟着这个:http://jonathannicol.com/blog/2013/11/19/automated-git-deployments-from-bitbucket/
答案 0 :(得分:1)
使用--mirror
标志创建的存储库是一个裸存储库(即它没有工作区)。 AFAIK,子模块可以初始化并只下载到工作区域。
更多: