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

如何拆分Git仓库并将指定目录内容迁移至根目录

拆分Git仓库并保留提交历史(将子目录内容移至根目录)

生成独立的my-library仓库(内容移至根目录)

  1. 克隆原仓库到本地新目录(避免修改原仓库)
git clone <原仓库URL> my-library-new
cd my-library-new
  1. 使用git filter-repo重写提交历史,仅保留my-library/目录下的内容,并将其移至仓库根目录:
git filter-repo --subdirectory-filter my-library/

此命令会自动清理所有与my-library/无关的提交,同时将该目录下的所有文件直接放到仓库根目录,完全匹配你的需求。

  1. 验证目录结构:
ls -la

此时根目录应直接包含src/和CMakeLists.txt。

  1. 创建新的远程仓库(例如GitHub上命名为my-library),然后推送本地分支:
git remote set-url origin <新仓库远程URL>
git push -u origin main

生成独立的tests仓库

  1. 重新克隆原仓库到新目录(或回到原仓库的干净克隆副本):
cd ..
git clone <原仓库URL> tests-new
cd tests-new
  1. 保留tests/目录的提交历史:
git filter-repo --subdirectory-filter tests/
  1. 创建新的远程仓库(例如命名为my-library-tests),推送本地内容:
git remote set-url origin <新tests仓库远程URL>
git push -u origin main

注意事项

  • 确保已安装git filter-repo:Linux可通过包管理器(如apt install git-filter-repo)安装,Mac使用brew install git-filter-repo,Windows可从官方渠道下载脚本。
  • 操作前务必备份原仓库,防止数据丢失。
  • 所有操作均在原仓库的副本上进行,不会影响原仓库的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:27:32