我有几个未版本控制的项目,这些项目又包含大量插件,其中一些是 git 克隆。我现在想把父项目变成一个 git repo,最好不用遍历所有插件,确定哪些是 git repos,然后手动将它们转换为父项目的子模块(当然,这是期望的结果) .
是否有捷径可寻?
你可以用一个简短的 shell 脚本来做到这一点:
#!/bin/sh
for d in plugins/*
do
if [ -e "$d/.git" ]
then
# Unstage the gitlink, so we can then add it back as a submodule:
git rm --cached "$d"
# Guess that the URL for origin is a reasonable one to use:
URL="$(cd "$d" && git config remote.origin.url)"
# Add the git repository back as a submodule:
git submodule add "$URL" "$d"
fi
done