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

使用git filter-repo提取特定文件创建新Git仓库遇问题求方案

解决方案

首先,操作前先克隆原仓库的干净副本,避免破坏原仓库数据:

git clone <原仓库地址> trimmed-repo
cd trimmed-repo

方法1:精确指定保留路径

创建paths.txt文件,内容如下:

.deploy.yml
.docker.yml
.gitlab-ci.yml
pom.xml
env/
area/pom.xml
cd/pom.xml
service/pom.xml

执行命令重写仓库历史,仅保留指定路径的内容:

git filter-repo --paths-from-file paths.txt --force

方法2:排除冗余子目录

如果方法1未生效,可明确排除不需要的子目录。创建exclude.txt文件:

area/folder1/
area/folder2/
area/folder3/
cd/folder4/
cd/folder5/
service/folder6/
service/folder7/

执行命令同时保留目标路径、排除冗余内容:

git filter-repo --paths-from-file paths.txt --exclude-paths-from-file exclude.txt --force

验证结果

执行完命令后,查看目录结构确认效果:

ls -la
tree

此时多余的子文件夹会被彻底移除(Git不追踪空文件夹,所以空文件夹不会留存)。

推送到新仓库

将处理后的仓库推送到新远程地址:

git remote add new-origin <新仓库地址>
git push -u new-origin --all
git push -u new-origin --tags

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:15:46