You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Git仓库的子目录转换为独立仓库

将子目录拆分为独立Git仓库的实现步骤

1. 前置准备

  • 先把父仓库的所有修改提交完毕,避免遗留未处理的内容:
    git add .
    git commit -m "拆分前最后一次提交"
    
  • 务必备份整个父目录,防止操作出错丢数据。

2. 逐个拆分子目录为独立仓库

拿其中一个子目录project-X举例,操作如下:

  • 在父目录外面新建一个空文件夹,用来放拆分后的仓库:
    mkdir ../project-X-new
    cd ../project-X-new
    git init
    
  • 从原父仓库拉取数据,并只保留project-X的历史:
    git pull /绝对路径/到父仓库 master --filter=blob:none
    git filter-repo --subdirectory-filter project-X
    

    要是没有git filter-repo工具,用旧的git filter-branch也可以:

    git filter-branch --prune-empty --subdirectory-filter project-X master
    
  • 拆分完成后,这个新仓库就只有project-X的完整提交记录了,后续可以关联远程仓库推送:
    git remote add origin <你的远程仓库地址>
    git push -u origin master
    

重复这个步骤,把所有需要拆分的子目录都处理一遍。

3. 取消父目录的Git仓库身份

回到原父目录,删除Git的核心文件目录即可:

cd /绝对路径/到父仓库
rm -rf .git

这样父目录就不再是Git仓库了。

4. 清理原父目录(可选)

如果不需要保留原父目录里的子目录文件,直接删除对应的文件夹就行;要是想留着本地备份,也可以保留,不影响拆分后的独立仓库。

内容的提问来源于stack exchange,提问作者IDK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:17:39