如何让git clone——递归A B使用A中的子模块存储库?

如何让git clone——递归A B使用A中的子模块存储库?,git,git-submodules,Git,Git Submodules,看起来,如果项目A有带有远程url的子模块,那么git clone--recursive A B坚持从远程url中提取每个子模块存储库的副本。有没有办法让git从中的副本克隆子模块存储库,而不是从远程存储库中提取 我想我可以这样做: git clone A B cd A git submodule --quiet foreach 'echo [submodule \"$path\"]\\n path = $path\\n url = $toplevel/$path ' > ../B/.gi

看起来,如果项目A有带有远程url的子模块,那么
git clone--recursive A B
坚持从远程url中提取每个子模块存储库的副本。有没有办法让git从中的副本克隆子模块存储库,而不是从远程存储库中提取

我想我可以这样做:

git clone A B
cd A
git submodule --quiet foreach 'echo [submodule \"$path\"]\\n path = $path\\n url = $toplevel/$path ' > ../B/.gitmodules
cd ../B
git submodule sync
git submodule update --init --recursive
git checkout .gitmodules
cd ..
有没有更简单的方法?

一切都是本地的

cp -r A B
[对评论的回应]

如果A是脏的,则:

   (cd A; git stash)
   cp -r A B
   (cd B; git stash drop)
   (cd A; git stash apply)

是的,这很好,但是如果存储库是脏的,它也会将本地更改复制到存储库。但是是的,如果A是干净的,那看起来是个好办法。