用 DVC 管理深度学习项目时,加入的数据集包含大量小文件,数据集没有做打包或压缩,直接以目录的形式存在与项目中,导致后续 git 有关的操作非常慢,DVC 操作也都非常慢。这严重影响工作效率。

数据集不属于需要经常修改的,因此完全可以打包压缩后放入项目再用DVC管理。而项目已经进行一段时间了,有代码修改的 git 提交记录,因此不能从头推倒重来。

git 提供了删除历史记录的功能。如下命令,可以把 datas 目录删除:

git filter-branch --index-filter "git rm --cached --ignore-unmatch datas" HEAD

删除历史记录后,再在本地新建 git 库去克隆删记录后的旧库。

mkdir ../new-project
cd ../new-project
git init
git pull ../old-project HEAD

新的本地 git 库无法直接 push 到旧的远程 git 仓库,需要重新建一个空的远程 git 仓库,再 push 上去。


  1. 拆分大的git库到多个独立git库
  2. Git 仓库拆拆拆
  3. git-filter-branch

发表回复

您的电子邮箱地址不会被公开。