在子文件夹中以子模块的形式递归添加git repos
将子文件夹中的git repos递归添加为子模块: 我正在寻找一种解决方案,将git存储库作为子模块添加到git repo文件夹中 我在目标文件夹中已经有了文件夹结构和克隆的存储库。我所需要的只是将这些repo作为子模块自动添加到子文件夹中 有数百种git回购协议,所以我想将其自动化 结构:文件夹1和2用作类别在子文件夹中以子模块的形式递归添加git repos,git,github,git-submodules,Git,Github,Git Submodules,将子文件夹中的git repos递归添加为子模块: 我正在寻找一种解决方案,将git存储库作为子模块添加到git repo文件夹中 我在目标文件夹中已经有了文件夹结构和克隆的存储库。我所需要的只是将这些repo作为子模块自动添加到子文件夹中 有数百种git回购协议,所以我想将其自动化 结构:文件夹1和2用作类别 ~/gitrepo-main/folder1/folder01/submodule ~/gitrepo-main/folder1/folder02/submodule ~/gitrepo
~/gitrepo-main/folder1/folder01/submodule
~/gitrepo-main/folder1/folder02/submodule
~/gitrepo-main/folder2/folder01/submodule
~/gitrepo-main/folder2/folder02/submodule
编辑:
可能是通过
从gitrepo主文件夹运行脚本
#!/bin/bash
for d in `find folder1/ -maxdepth 3 -mindepth 3 -type d`
do
pushd $d
export url=$(git config --get remote.origin.url)
popd
git submodule add $url $d
done
我在目标文件夹中已经有了文件夹结构和克隆的存储库
我认为这会是个问题,但确实提到:
是超级项目中克隆子模块的相对位置
- 如果
不存在,则通过从命名URL克隆来创建子模块李> - 如果
确实存在并且已经是一个有效的Git存储库,则将其添加到变更集中而不进行克隆
- (如果这些嵌套回购已添加到父回购中,并在其根目录中添加了一个
done)git add.
- 或者通过查找父repo中的任何
子文件夹来查找所有嵌套的repo.git
- 查询每个文件夹中的远程子回购url(
)。git remote-v
请注意,这些子文件夹中没有“
”,您可以执行以下操作:cd
git -C /full/path/of/subrepo remote -v
- 将该路径声明为子模块
git submodule add -- /remote/url/of/subrepo relative/path/of/subrepo
for d in `find .vim/bundle/ -maxdepth 1 -mindepth 1 -type d`
do
export url=$(git -C $d config --get remote.origin.url)
git submodule add $url $d
done
没有更多的pushd/popd
我在目标文件夹中已经有了文件夹结构和克隆的存储库
我认为这会是个问题,但确实提到:
是超级项目中克隆子模块的相对位置
- 如果
不存在,则通过从命名URL克隆来创建子模块李> - 如果
确实存在并且已经是一个有效的Git存储库,则将其添加到变更集中而不进行克隆
- (如果这些嵌套回购已添加到父回购中,并在其根目录中添加了一个
done)git add.
- 或者通过查找父repo中的任何
子文件夹来查找所有嵌套的repo.git
- 查询每个文件夹中的远程子回购url(
)。git remote-v
请注意,这些子文件夹中没有“
”,您可以执行以下操作:cd
git -C /full/path/of/subrepo remote -v
- 将该路径声明为子模块
git submodule add -- /remote/url/of/subrepo relative/path/of/subrepo
for d in `find .vim/bundle/ -maxdepth 1 -mindepth 1 -type d`
do
export url=$(git -C $d config --get remote.origin.url)
git submodule add $url $d
done
没有更多的pushd/popd。thx关于您的答案,请查看我的编辑-现在必须赶时间,稍后再查看-regards@Aurigae是的,那是一样的idea@Aurigae我已经用-C syntax.kk重写了它,所以我们可以结束这个问题,我想,tyvm-纯粹是侥幸我遇到了链接脚本。我建议让QA保持开放状态,因为谷歌首先看不到答案,这里的关键字应该可以。thx关于你的答案,请查看我的编辑-现在必须赶紧,稍后再查看-regards@Aurigae是的,那是一样的idea@Aurigae我已经用-C syntax.kk重写了它,所以我们可以结束这个问题,我想,tyvm-我很幸运地看到了链接脚本。我建议让QA保持开放状态,因为谷歌首先看不到答案,这里的关键词就可以了。