这个仓库可以通过 git subtree split 按一级目录拆分成多个独立 GitHub 仓库。
已提供脚本:
./scripts/split-top-level-repos.sh --owner <github_owner>默认是 dry-run,只打印命令不执行,便于先检查。
- 先预览将要执行的命令:
./scripts/split-top-level-repos.sh --owner <github_owner>- 确认无误后,实际执行拆分并推送:
./scripts/split-top-level-repos.sh --owner <github_owner> --push --execute- 若希望自动创建 GitHub 仓库(需要先安装并登录
ghCLI):
./scripts/split-top-level-repos.sh --owner <github_owner> --create-remote --push --execute--owner:必填,GitHub 用户名或组织名--remote-base:远程地址前缀(默认git@github.com:<owner>)--create-remote:用gh自动创建仓库--push:推送 split 分支到对应远程仓库--exclude:要排除的一级目录(逗号分隔,默认.git,scripts)--execute:关闭 dry-run,真正执行命令
对每个一级目录(排除 .git)依次执行:
git subtree split --prefix=<目录> -b split/<目录>- (可选)创建远程仓库
<owner>/<目录> - (可选)推送
split/<目录>到远端main
--push使用--force推送,请确保目标仓库可覆盖。- 如果你的默认分支不是
main,可先推送后在 GitHub 修改默认分支。 - 拆分后每个仓库仅保留对应子目录的历史。